<?xml version="1.0"?>
<doc>
    <assembly>
        <name>ESRI.ArcGIS.Client.Toolkit</name>
    </assembly>
    <members>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel">
            <summary>
            Represents a layer in the TOC/legend.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel">
            <summary>
            Represents a basic item in the legend/TOC.
            A basic item contains a label and an image. 
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.#ctor(ESRI.ArcGIS.Client.LegendItemInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel"/> class from a <see cref="T:ESRI.ArcGIS.Client.LegendItemInfo"/>.
            </summary>
            <param name="legendItemInfo">The legend item info.</param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.Label">
            <summary>
            Legend item label.
            </summary>
            <value>The label.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.ImageSource">
            <summary>
            Legend item image source.
            </summary>
            <value>The image source.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.Description">
            <summary>
            The description of the legend item.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.LayerItemsSource">
            <summary>
            Gets the children of the legend item. 
            </summary>
            <value>The children. Note that a basic item returns always null but the method can be overridden by inherited classes.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.IsSelected">
            <summary>
            Gets or sets a value indicating whether this instance is selected.
            </summary>
            <value>
            	<c>true</c> if this instance is selected; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.IsExpanded">
            <summary>
            Gets or sets a value indicating whether this instance is expanded.
            </summary>
            <value>
            	<c>true</c> if this instance is expanded; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.Template">
            <summary>
            Gets the template for this legend item. Depending on the type of item, the template can be the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LegendItemTemplate"/> , the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerTemplate"/>
            or the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.MapLayerTemplate"/>.
            </summary>
            <value>The template.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.Tag">
            <summary>
            Gets or sets an object associated with the legend item.
            This provides the ability to attach an arbitrary object to the item.
            </summary>
            <value>A System.Object that is attached or associated with a legend item..</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.LegendTree">
            <summary>
            Gets or sets the parent legend tree.
            </summary>
            <value>The legend tree.</value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.#ctor(ESRI.ArcGIS.Client.Layer)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel"/> class.
            </summary>
            <param name="layer">The layer this item represents.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel"/> class without layer.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.#ctor(ESRI.ArcGIS.Client.Layer,ESRI.ArcGIS.Client.LayerLegendInfo,System.String,ESRI.ArcGIS.Client.Map)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel"/> class from a <see cref="T:ESRI.ArcGIS.Client.LayerLegendInfo"/>..
            </summary>
            <param name="layer">The layer.</param>
            <param name="layerLegendInfo">The layer legend info.</param>
            <param name="defaultLayerDescription">The default layer description (= the map layer description).</param>
            <param name="map">The map.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.GetTemplate">
            <summary>
            Gets the template.
            </summary>
            <returns>The template</returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.UpdateLayerVisibilities(System.Boolean,System.Boolean)">
            <summary>
            Updates recursively the properties IsEnabled, IsVisible and IsInScaleRange.
            </summary>
            <param name="isParentVisible">The visibility of the parent.</param>
            <param name="isParentInScaleRange">The scale range status of the parent.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.ConvertToResolution(System.Double,ESRI.ArcGIS.Client.Map)">
            <summary>
            Converts to resolution.
            </summary>
            <param name="scale">The scale.</param>
            <param name="map">The map.</param>
            <returns></returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.Layer">
            <summary>
            The map layer associated to the layer item.
            </summary>
            <value>The layer.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.SubLayerID">
            <summary>
            The ID of the sub layer.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.LayerType">
            <summary>
            The type of layer.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MinimumResolution">
            <summary>
            The minimum resolution in which this layer can be viewed.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MaximumResolution">
            <summary>
            The maximum scale in which this layer can be viewed.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsEnabled">
            <summary>
            Whether the layer is currently enabled i.e. is checked on.
            </summary>
            <value><c>true</c> if the layer is currently enabled; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsVisible">
            <summary>
            Whether the layer is currently visible (taking care of the ascendants visibility and of the scale range).
            </summary>
            <remarks>The IsVisible property is also taking care of the layer intialization failure (i.e is false whether a layer failed to initialize)
            and of the tiled layers spatial reference mismatchs (i.e. is false whether the spatial reference of a tiled layer is not the same as the map spatial reference).</remarks>
            <value><c>true</c> if the layer is currently visible; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsInScaleRange">
            <summary>
            Gets or sets a value indicating whether this instance is in the scale range to be visible.
            </summary>
            <value>
            	<c>true</c> if this instance is in scale range; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsBusy">
            <summary>
            Gets a value indicating whether this the layer is currently loading
            its legend.
            </summary>
            <value><c>true</c> if this instance is busy; otherwise, <c>false</c>.</value>
            <seealso cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.BusyIndicatorVisibility"/>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.BusyIndicatorVisibility">
            <summary>
            Gets the busy indicator visibility.
            The busy indicator is visible while the layer is currently loading its legend.
            </summary>
            <remarks>This value makes sense for map layer items.</remarks>
            <value>The busy indicator visibility.</value>
            <seealso cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsBusy"/>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.LayerItems">
            <summary>
            The collection of <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel"/> under this layer item.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.LegendItems">
            <summary>
            The collection of <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendItemViewModel"/> under this layer item.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.LayerItemsSource">
            <summary>
            The enumeration of all legend items (LegendItemViewModel + LayerItemViewModel) displayed under this layer item.
            This enumeration is depending on the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsMode"/> property and on the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.ShowOnlyVisibleLayers"/> property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsGroupLayer">
            <summary>
            Gets a value indicating whether this instance is a group layer.
            </summary>
            <value>
            	<c>true</c> if this instance is group layer; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.LayerItemsOptions">
            <summary>
            Gets or sets the layer items options used to get the layer items.
            </summary>
            <value>The layer items options.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.IsMapLayer">
            <summary>
            Gets a value indicating whether this instance is map layer item.
            </summary>
            <value>
            	<c>true</c> if this instance is map layer item; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit">
            <summary>
            Unit used by to convert scale to resolution 
            </summary>
            <remarks>The integer value of the enums corresponds to 1/10th of a millimeter</remarks>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriUnknownUnits">
            <summary>
            Undefined
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriDecimalDegrees">
            <summary>
            Decimal degrees
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriInches">
            <summary>
            Inches
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriFeet">
            <summary>
            Feet
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriYards">
            <summary>
            Yards
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriMiles">
            <summary>
            Miles
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriNauticalMiles">
            <summary>
            Nautical Miles
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriMillimeters">
            <summary>
            Millimeters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriCentimeters">
            <summary>
            Centimeters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriDecimeters">
            <summary>
            Decimeters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriMeters">
            <summary>
            Meters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.MapUnit.esriKilometers">
            <summary>
            Kilometers
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Bookmark">
            <summary>
            The Bookmark Control allows for setting pre-defined Map.Extent values using a name for speedy navigation 
            of the Map. 
            </summary>
            <remarks>
            <para>
            The Bookmark is a User Interface (UI) control that allows clients to define preset 
            <see cref="P:ESRI.ArcGIS.Client.Map.Extent">Map.Extent</see> values using a name for quick navigation in the 
            Map Control. The Bookmark Control can be created in at design time in XAML or dynamically at runtime in the 
            code-behind. The Bookmark Control is one of several controls available in the Toolbox in Visual Studio when 
            the ESRI ArcGIS API for Silverlight/WPF is installed, see the following screen shot:
            </para>
            <para>
            <img border="0" alt="Example of the Bookmark Control on the XAML design surface of a Silverlight application." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Bookmark.png"/>
            </para>
            <para>
            The default appearance of the Bookmark Control can be modified using numerous inherited Properties from 
            System.Windows.FrameworkElement, System.Windows.UIElement, and System.Windows.Controls. An example of some 
            of these Properties include: .Height, .Width, .BackGround, .BorderBrush, .BorderThickness, .FontFamily, 
            .FontSize, .FontStretch, .FontStyle, .Foreground, .HorizontalAlignment, .VerticalAlignment, .Margin, 
            .Opacity, .Visibility, etc. 
            </para>
            <para>
            Note: you cannot change the core behavior of the sub-components (i.e. Button, DataGrid, etc.) of the 
            Bookmark Control using standard Properties or Methods alone. To change the core behavior of the 
            sub-components and their appearance of the Control, developers can modify the Control Template in XAML 
            and the associated code-behind file. The easiest way to modify the UI sub-components is using Microsoft 
            Expression Blend. Then developers can delete/modify existing or add new sub-components in Visual Studio 
            to create a truly customized experience. A general approach to customizing a Control Template is discussed 
            in the ESRI blog entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>. 
            Specific code examples of modifying the Control Template of the Bookmark control to can be found in the 
            <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.DeleteBookmarkAt(System.Int32)">Bookmark.DeleteBookmarkAt</see> Method 
            and <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.AddBookmark(System.String,ESRI.ArcGIS.Client.Geometry.Envelope)">Bookmark.AddBookmark</see> Method 
            documents.
            </para>
            <para>
            In order to use the Bookmark Control it is mandatory that the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Map">Bookmark.Map</see> Property be set to a Map Control. 
            This can be done via Binding in the XAML or by setting the Map Property in the code-behind file.
            </para>
            <para>
            The Bookmark Control is comprised of mainly five sub-components: 
            <list type="bullet">
              <item>
              A TextBlock for displaying the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Title">Bookmark.Title</see>
              </item>
              <item>
              A TextBox to provide a Name for the <see cref="P:ESRI.ArcGIS.Client.Map.Extent">Map.Extent</see> of the 
              <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark">MapBookmark</see> item
              </item>
              <item>
              A Button to <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.AddBookmark(System.String,ESRI.ArcGIS.Client.Geometry.Envelope)">add</see> the named Map.Extent 
              (aka. a bookmark) to the DataGrid
              </item>
              <item>
              A DataGrid to display the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Bookmarks">ObservableCollection(Of Bookmark.MapBookmark)</see> 
              that have been added by the user
              </item>
              <item>
              A Button to <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.ClearBookmarks">clear</see> out (or remove) 
              all of the MapBookmark items from the DataGrid
              </item>
            </list>
            </para>
            <para>
            The following image shows a typical Bookmark Control and its various sub-component parts:
            </para>
            <para>
            <img border="0" alt="Describing the various parts of the Bookmark Control." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Bookmark2.png"/>
            </para>
            <para>
            To use the Bookmark Control, clients use the various pan/zoom functions on the Map Control to select a 
            visual Map.Extent and then type in a name for in the TextBox. Then they click the <b>+</b> button to add 
            that named Map.Extent (aka. a bookmark) into the DataGrid. Later when the user decides to go back to a 
            previous Map.Extent, they click on the name in the DataGrid and the Map will automatically pan/zoom to 
            that named Map.Extent (aka. a bookmark). Users click the Clear button to remove all of the named Map.Extent 
            (aka. a bookmark) values from the DataGrid.
            </para>
            <para>
            If a portion of the current Map.Extent is in the named Map.Extent (aka. a bookmark) when the user clicks on 
            a bookmark item in the DatGrid, the map will pan/zoom using an animation to the clicked bookmark. If the 
            current Map.Extent does not contain any spatial overlap with the named Map.Extent (aka. a bookmark) that 
            the user clicks on in the DataGrid, there will be not be any animation and the Map will immediately go to 
            the new Bookmark location.
            </para>
            <para>
            By default the <b>ESRI.ArcGIS.Client.Toolkit.Bookmark.UseIsolatedStorage</b> 
            value equals True. This means that the application will remember from one session to another the named 
            Map.Extent (aka. a bookmark) values previously entered. If the Bookmark.UseIsolatedStorage is set to False, 
            the next time a user begins another client session of the application the named Map.Extent (aka. a bookmark) 
            settings will be lost. <b>Note:</b> There is only one <b>IsolatedStorage</b> container per application. 
            This may have implications if you have multiple Maps, each with their own set of Bookmarks. This means you 
            may need to make use of the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Bookmarks">Bookmark.Bookmarks</see> 
            Property which returns an ObservableCollection(Of Bookmark.MapBookmark) object to persist across the various 
            Maps.
            </para>
            <para>
            When a Bookmark Control is created the ObservableCollection (Of MapBookmark) object is also created that is 
            accessible from the Bookmark.Bookmarks Property. Although the Bookmark.Bookmarks Property is ReadOnly, 
            meaning you can only get the ObservableCollection (Of MapBookmark) object, you can use its Members to like: 
            Add, Clear, Remove, etc. to define how the Bookmark Control behaves.
            </para>
            <para>
            To change the text of a previously entered named Map.Extent (aka. a bookmark) in the DataGrid, click on the 
            text portion inside of the selected DataGrid item and the bounding box around the text will turn Black 
            (meaning it is ready to accept the cursor for text changes). Then type the desired edits and when done making 
            text changes for the named Map.Extent (aka. a bookmark) click with the mouse cursor somewhere outside of the 
            editiable portion of the DataGrid. It may take some practice of first selecting a DataGrid item and then 
            clicking on the text inside of the DataGrid to get the Black editable background (two clicks in the same spot 
            but not a double-click).
            </para>
            <para>
            When the user types in a name for the current Map.Extent to add to the DataGrid by clicking the <b>+</b> 
            button, the text value that is typed will remain after the user clicks the <b>+</b> button. The text value 
            does not automatically clear when the <b>+</b> button is clicked.
            </para>
            <para>
            It is possible to programmatically control the removal of one named Map.Extent (aka. a bookmark) from the 
            DataGrid in the Bookmark Control rather than removing all of them via the Clear button. Use the 
            <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.DeleteBookmarkAt(System.Int32)">Bookmark.DeleteBookmarkAt</see> Method to 
            supply an index number for the correct named Map.Extent (aka. a bookmark) in the DatGrid to be removed. The 
            visually top most named Map.Extent (aka. a bookmark) in the DataGrid is the 0 index value.
            </para>
            <para>
            The text of the Title for the Bookmark can be controlled via the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Title">Title</see> Property in XAML or code-behind.
            </para>
            <para>
            Controlling the input text for the TextBox that provides a name for the Map.Extent is done via client 
            interaction. Developers can programmatically assign a text value by modifying the sub-component 
            <b>AddBookmarkName</b> TextBox of the Bookmark Control using a custom Control Template.
            </para>
            <para>
            Controlling the behavior and appearance of the <b>+</b> button to add a named Map.Extent (aka. a bookmark) 
            to the DataGrid can be programmatically controlled by modifying the sub-component <b>AddBookmark</b> Button 
            of the Bookmark Control using a custom Control Template.
            </para>
            <para>
            Controlling the behavior and appearance of the DataGrid that contains the ObservableCollection of named 
            Map.Extent (aka. a bookmark) values can be programmatically controlled by modifying the sub-component 
            <b>BookmarkList</b> DataGrid of the Bookmark Control using a custom Control Template.
            </para>
            <para>
            Controlling the behavior and appearance of the Clear button to remove all named Map.Extent (aka. a bookmark) 
            values from the DataGrid can be programmatically controlled by modifying the sub-component 
            <b>ClearBookmarks</b> Button of the Bookmark Control using a custom Control Template.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            This example provides a default Bookmark Control that is bound to a Map Control to experiment with its 
            functionality. Additionally, there are several Buttons that can be clicked to see how some of the behavior 
            and appearance of the Bookmark Control can be modified via the code-behind.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Demonstrating a default Bookmark Control and usage of several Properties and Methods." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Bookmark3.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="70" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                         TextWrapping="Wrap" Margin="2,9,0,0" 
                         Text="This example provides a default Bookmark Control that is bound to a Map Control to 
                              experiment with its functionality. Additionally, there are several Buttons that can be 
                              clicked to see how some of the behavior and appearance of the Bookmark Control can be 
                              modified via the code-behind." /&gt;
              
              &lt;!-- Add a Map Control. --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,85,0,0" Name="Map1" 
                        VerticalAlignment="Top" Height="360" Width="401" &gt;
              
                &lt;!-- Add a default ArcGISTiledMapServiceLayer for visual display in the Map. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="PhysicalTiledLayer" 
                             Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
              &lt;/esri:Map&gt;
              
              &lt;!-- 
              Add a default Bookmark Control. The Bookmark.Map Property has been bound to the Map Control. 
              The Bookmark.IsolatedStorage Property have been set to False (the default is True) to clear
              out the MapBookmark items each time the application runs. --&gt;
              &lt;esri:Bookmark HorizontalAlignment="Left" Margin="419,278,0,0" Name="Bookmark1" 
                             VerticalAlignment="Top" Width="208" Height="168" 
                             Map="{Binding ElementName=Map1}" UseIsolatedStorage="False"/&gt;
              
              &lt;!-- 
              A Button with code-behind to show adding a MapBookmark to the Bookmark Control. This version
              uses an Envelope.Extent via String X,Y coordinate pairs to populate the MapBookmark.Extent. 
              --&gt;
              &lt;Button Content="AddBookmark Method" HorizontalAlignment="Left" Margin="420,86,0,0" 
                      Name="Button_AddBookmark" VerticalAlignment="Top" Width="209" Click="Button_AddBookmark_Click"/&gt;
              
              &lt;!-- 
              A Button with code-behind to show adding a MapBookmark to the Bookmark Control. This version
              uses the current Map.Extent for the MapBookmark.Extent value.  
              --&gt;
              &lt;Button Content="AddBookmark v2 Method" Height="23" HorizontalAlignment="Left" Margin="421,115,0,0" 
                      Name="Button_AddBookmarkv2" VerticalAlignment="Top" Width="208" Click="Button_AddBookmarkv2_Click"/&gt;
              
              &lt;!-- A button with code-behind to clear out all items in the Bookmark Control. --&gt;
              &lt;Button Content="ClearBookmarks Method" Height="23" HorizontalAlignment="Left" Margin="421,144,0,0" 
                      Name="Button_ClearBookmarks" VerticalAlignment="Top" Width="209" Click="Button_ClearBookmarks_Click"/&gt;
              
              &lt;!-- A button with code-behind to clear out just the first MapBookmark item in the Bookmark Control. --&gt;
              &lt;Button Content="DeleteBookmarkAt Method" Height="23" HorizontalAlignment="Left" Margin="420,173,0,0"
                      Name="Button_DeleteBookmarkAt" VerticalAlignment="Top" Width="209" Click="Button_DeleteBookmarkAt_Click" /&gt;
              
              &lt;!-- 
              A button with code-behind to display all of the MapBookmark.Name and MapBookmark.Extent values in 
              the Bookmark Control via a MessageBox. --&gt;
              &lt;Button Content="Bookmarks Property" Height="23" HorizontalAlignment="Left" Margin="420,202,0,0" 
                      Name="Button_Bookmarks" VerticalAlignment="Top" Width="209" Click="Button_Bookmarks_Click"/&gt;
              
              &lt;!-- A button with code-behind to change the default Title of the Bookmark Control. --&gt;
              &lt;Button Content="Title Property" Height="23" HorizontalAlignment="Left" Margin="420,231,0,0" 
                      Name="Button_Title" VerticalAlignment="Top" Width="209" Click="Button_Title_Click"/&gt;
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button_AddBookmark_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function add a new named Map.Extent (aka. a bookmark) to the ObservableCollection&lt;MapBookmark&gt;.
              ESRI.ArcGIS.Client.Geometry.Envelope myExtent = new ESRI.ArcGIS.Client.Geometry.Envelope(-1837672.03060728, 3202886.78616195, 4708662.7690822, 9079895.58388817);
              Bookmark1.AddBookmark("Europe", myExtent);
            }
            
            private void Button_AddBookmarkv2_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // An alternate method of adding a named MapExtent (aka. a bookmark) to the ObservableCollection&lt;MapBookmark&gt;.
              Bookmark1.AddBookmark("A custom location", Map1.Extent);
            }
            
            private void Button_ClearBookmarks_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This Clears ALL of the Bookmarks. Same functionality as the 'Clear' button in the default GUI for the control.
              Bookmark1.ClearBookmarks();
            }
            
            private void Button_DeleteBookmarkAt_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function deletes the first occurrence of a MapBookmark from the Bookmark.Control.
              
              Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt; myBookmarks = null;
              myBookmarks = Bookmark1.Bookmarks;
              if (myBookmarks.Count &gt; 0)
              {
                // Delete the top most bookmark
                Bookmark1.DeleteBookmarkAt(0);
              }
            }
            
            private void Button_Bookmarks_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function loops through all of the MapBookmark items in the Bookmark.Bookmarks 
              // ObservableCollection&lt;MapBookmark&gt; to display the MapBookmark.Name and MapBookmark.Extent.
            
              Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt; myBookmarks = null;
              myBookmarks = Bookmark1.Bookmarks;
              
              foreach (ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark oneMapBookmark in myBookmarks)
              {
                MessageBox.Show("The MapBookmark: " + oneMapBookmark.Name + Environment.NewLine + "Has the Extent: " + oneMapBookmark.Extent.ToString());
              }
            }
            
            private void Button_Title_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // Modify the default title of the Bookmark Control.
              Bookmark1.Title = "My Custom Title";
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button_AddBookmark_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function add a new named Map.Extent (aka. a bookmark) to the ObservableCollection(Of MapBookmark).
              Dim myExtent As New ESRI.ArcGIS.Client.Geometry.Envelope(-1837672.03060728, 3202886.78616195, 4708662.7690822, 9079895.58388817)
              Bookmark1.AddBookmark("Europe", myExtent)
              
            End Sub
            
            Private Sub Button_AddBookmarkv2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' An alternate method of adding a named MapExtent (aka. a bookmark) to the ObservableCollection(Of MapBookmark).
              Bookmark1.AddBookmark("A custom location", Map1.Extent)
              
            End Sub
            
            Private Sub Button_ClearBookmarks_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This Clears ALL of the Bookmarks. Same functionality as the 'Clear' button in the default GUI for the control.
              Bookmark1.ClearBookmarks()
              
            End Sub
            
            Private Sub Button_DeleteBookmarkAt_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function deletes the first occurrence of a MapBookmark from the Bookmark.Control.
              
              Dim myBookmarks As Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark)
              myBookmarks = Bookmark1.Bookmarks
              If myBookmarks.Count &gt; 0 Then
                
                ' Delete the top most bookmark
                Bookmark1.DeleteBookmarkAt(0)
                
              End If
              
            End Sub
            
            Private Sub Button_Bookmarks_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function loops through all of the MapBookmark items in the Bookmark.Bookmarks 
              ' ObservableCollection(Of MapBookmark) to display the MapBookmark.Name and MapBookmark.Extent.
              
              Dim myBookmarks As Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark)
              myBookmarks = Bookmark1.Bookmarks
              
              For Each oneMapBookmark As ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark In myBookmarks
                MessageBox.Show("The MapBookmark: " + oneMapBookmark.Name + vbCrLf +
                                "Has the Extent: " + oneMapBookmark.Extent.ToString)
              Next
              
            End Sub
            
            Private Sub Button_Title_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' Modify the default title of the Bookmark Control.
              Bookmark1.Title = "My Custom Title"
              
            End Sub
            </code>
            </example>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code
            or internal processes (such as a rebuilding layout pass) call 
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Map"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.AddBookmark(System.String,ESRI.ArcGIS.Client.Geometry.Envelope)">
            <summary>
            Adds a named Map.Extent (aka. a bookmark) into the DataGrid sub-component of the Bookmark Control. 
            </summary>
            <remarks>
            <para>
            The AddBookmark Method adds a named Map.Extent (aka. a bookmark) into the 
            ObservableCollection(Of Bookmark.MapBookmark) object. The ObservableCollection(Of Bookmark.MapBookmark) 
            object is internally bound to the DataGrid sub-component in the 
            <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark">Bookmark</see> Control. Use the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Bookmarks">Bookmark.Bookmarks</see> Property to obtain the 
            ObservableCollection(Of Bookmark.MapBookmark) object.
            </para>
            <para>
            There are two input parameters for the AddBookmark Method: <b>name</b> and <b>extent</b>.The <b>name</b> 
            is the human readable string that defines a geographic extent on the Map. The <b>extent</b> is the 
            <see cref="P:ESRI.ArcGIS.Client.Map.Extent">Map.Extent</see> that corresponds to item <b>name</b> in the 
            ObservableCollection.
            </para>
            <para>
            The functionality of the AddBookmark Method is comparable to when a user of a client application types a 
            string into the Textbox sub-component of the Bookmark Control and clicks the <b>+</b> button, causing the 
            named Map.Extent (aka. a bookmark) to appear in the DataGrid. It should be noted that the AddBookmark 
            Method IS NOT the Event for the <b>+</b> button of the Bookmark Control. To change the core behavior of 
            any of the sub-components and their appearance of the Bookmark Control (including the <b>+</b> button), 
            developers must modify the Control Template in XAML and the associated code-behind file. The easiest way 
            to modify the UI sub-components is using Microsoft Expression Blend. Then developers can delete/modify 
            existing or add new sub-components in Visual Studio to create a truly customized experience. A general 
            approach to customizing a Control Template is discussed in the ESRI blog entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>. 
            An example of modifying the Control Template of the Bookmark control to provide an alternate set of 
            functionality that automatically populates several named Map.Extent (aka. a bookmark) values via the 
            AddBookmark Method is provided in the code example section of this document.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            This example code shows disabling some of the features of the Bookmark Control to create a kiosk type of 
            application. Users are not allowed to make any editable changes to the Bookmark Control. To use: Click the 
            various preset bookmarks to see the Four Corners area of the United States.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Example of overriding the default behavior of the Bookmark Control to auto-populate several bookmarks via the AddBookmark Method." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Bookmark.AddBookmark.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
              
              &lt;!-- 
              Use the Resources section to hold a Style for setting the appearance and behavior of the Bookmark Control. 
              Don't forget to add following XAML Namespace definitions to the correct location in your code:
              xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
              xmlns:esri="http://schemas.esri.com/arcgis/client/2009" 
              --&gt;
              &lt;Grid.Resources&gt;
              
                &lt;!--
                The majority of the XAML that defines the ControlTemplate for the Bookmark Control was obtained
                by using Microsoft Blend. See the blog post entitled: 'Use control templates to customize the 
                look and feel of ArcGIS controls' at the following Url for general How-To background:
                http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx
                --&gt;
                &lt;Style x:Key="BookmarkStyle1" TargetType="esri:Bookmark"&gt;
                  &lt;Setter Property="MaxHeight" Value="200"/&gt;
                  &lt;Setter Property="Width" Value="120"/&gt;
                  &lt;Setter Property="Background" Value="#99000000"/&gt;
                
                  &lt;!-- The Title.Value was modified. --&gt;
                  &lt;Setter Property="Title" Value="Four Corners Kiosk"/&gt;
                  
                  &lt;Setter Property="BorderThickness" Value="1"/&gt;
                  &lt;Setter Property="BorderBrush" Value="White"/&gt;
                  &lt;Setter Property="Template"&gt;
                    &lt;Setter.Value&gt;
                      &lt;ControlTemplate TargetType="esri:Bookmark"&gt;
                        &lt;Grid Background="Yellow"&gt;
                          &lt;Grid.RowDefinitions&gt;
                            &lt;RowDefinition Height="25"/&gt;
                              
                            &lt;!-- Changed the Height for better visual appeal. --&gt;
                            &lt;RowDefinition Height="1"/&gt;
                                             
                            &lt;RowDefinition Height="*"/&gt;
                            &lt;RowDefinition Height="25"/&gt;
                          &lt;/Grid.RowDefinitions&gt;
                          &lt;Border BorderBrush="{TemplateBinding BorderBrush}" 
                                  BorderThickness="{TemplateBinding BorderThickness}" 
                                  Background="{TemplateBinding Background}" 
                                  CornerRadius="5" 
                                  Grid.RowSpan="4"/&gt;
                          &lt;TextBlock Foreground="Black" FontWeight="Bold" FontSize="12" 
                                     FontFamily="Verdana" Margin="5,5,5,0" 
                                     Grid.Row="0" Text="{TemplateBinding Title}"/&gt;
                             
                          &lt;!-- Comment out the entire section that allows users to add bookmarks. Since 
                          this is a Kiosk Application, we do not want users to make any changes.
                          --&gt;
                          &lt;!--
                          &lt;Grid Margin="5,0,5,0" Grid.Row="1"&gt;
                            &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                              &lt;ColumnDefinition Width="30"/&gt;
                            &lt;/Grid.ColumnDefinitions&gt;
                            &lt;TextBox x:Name="AddBookmarkName" Grid.Column="0" Width="200"/&gt;
                            &lt;Button x:Name="AddBookmark" Content="+" Grid.Column="1" /&gt;
                          &lt;/Grid&gt;
                          --&gt;
                                        
                          &lt;!-- Add the IsReadOnly Attribute to disable the user from editing the bookmark names. --&gt;
                          &lt;sdk:DataGrid x:Name="BookmarkList" AutoGenerateColumns="False" CanUserResizeColumns="False" 
                                        CanUserReorderColumns="False" HeadersVisibility="None" Margin="5,0,5,0" 
                                        Grid.Row="2" RowHeight="16" RowDetailsVisibilityMode="Collapsed" 
                                        TabNavigation="Local" Visibility="Visible" IsReadOnly="True" &gt;
                            &lt;sdk:DataGrid.Columns&gt;
                            &lt;sdk:DataGridTextColumn Binding="{Binding Name, Mode=TwoWay}" Foreground="Black" 
                                                    FontSize="10" FontFamily="Times" Header="Bookmark" 
                                                    IsReadOnly="False" Width="{TemplateBinding Width}"/&gt;
                            &lt;/sdk:DataGrid.Columns&gt;
                          &lt;/sdk:DataGrid&gt;
                          
                          &lt;!-- Comment out the entire section that allows users to delete bookmarks. Since 
                          this is a Kiosk Application, we do not want users to make any changes.
                          --&gt;
                          &lt;!--
                          &lt;Grid Margin="5,0,5,5" Grid.Row="3"&gt;
                            &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                            &lt;/Grid.ColumnDefinitions&gt;
                            &lt;Button x:Name="ClearBookmarks" Content="Clear All" Grid.Column="0"/&gt; 
                          &lt;/Grid&gt;
                          --&gt;
                                          
                        &lt;/Grid&gt;
                      &lt;/ControlTemplate&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                &lt;/Style&gt;
              &lt;/Grid.Resources&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="70" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                         TextWrapping="Wrap" Margin="2,9,0,0" 
                         Text="This example code shows disabling some of the features of the Bookmark Control to create
                              a kiosk type of application. Users are not allowed to make any editable changes to the Bookmark
                              Control. To use: Click the various preset bookmarks to see the Four Corners area of the 
                              United States." /&gt;
              
              &lt;!-- Add a Map Control to the application and define an intial Map.Extent to the Four Corners states. --&gt;
              &lt;esri:Map x:Name="MyMap" Extent="-12948716, 3633316, -11207358, 5196630"
                        Background="White" HorizontalAlignment="Left" Margin="12,85,0,0"  
                        VerticalAlignment="Top" Height="360" Width="401"&gt;
              
                &lt;!-- Add an ArcGISTiledMapServiceLayer for some quick data display. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer 
                      Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add a Bookmark Control. It is important to provide an x:Name attribute so it can be referenced
              in the code-behind. Define the Style of the Bookmark to use the Control Template that was generated
              in Blend and modified here in Visual Studio. The Map Property uses the default two-way Binding to 
              associate the Bookmark Control with the Map Control. The Loaded Event handler was added so that in
              the code-behind some predefined bookmarks could be added.
              --&gt;
              &lt;esri:Bookmark x:Name="MyBookmarks" Width="200" HorizontalAlignment="Right" VerticalAlignment="Top" 
                             Margin="0,85,12,0" Background="#CC919191" BorderBrush="#FF92a8b3" Foreground="Black"   
                             Style="{StaticResource BookmarkStyle1}"
                             Map="{Binding ElementName=MyMap}" Loaded="MyBookmarks_Loaded"/&gt;
                  
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void MyBookmarks_Loaded(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function clears out any existing bookmarks and added several new ones to provide predefined
              // functionality for zooming around the Four Corners states of the United States.
              
              // Clear out any existing bookmarks. 
              MyBookmarks.ClearBookmarks();
              
              // Add bookmarks for the various areas of the Four Corners region of the United States.
              ESRI.ArcGIS.Client.Geometry.Envelope myExtentTheFourCorners = new ESRI.ArcGIS.Client.Geometry.Envelope(-12948716, 3633316, -11207358, 5196630);
              MyBookmarks.AddBookmark("The Four Corners", myExtentTheFourCorners);
              
              ESRI.ArcGIS.Client.Geometry.Envelope myExtentArizona = new ESRI.ArcGIS.Client.Geometry.Envelope(-12921190, 3642001, -11973117, 4493139);
              MyBookmarks.AddBookmark("Arizona", myExtentArizona);
              
              ESRI.ArcGIS.Client.Geometry.Envelope myExtentColorado = new ESRI.ArcGIS.Client.Geometry.Envelope(-12190630, 4330502, -11325307, 5107351);
              MyBookmarks.AddBookmark("Colorado", myExtentColorado);
              
              ESRI.ArcGIS.Client.Geometry.Envelope myExtentNewMexico = new ESRI.ArcGIS.Client.Geometry.Envelope(-12289052, 3647640, -11371077, 4471758);
              MyBookmarks.AddBookmark("New Mexico", myExtentNewMexico);
              
              ESRI.ArcGIS.Client.Geometry.Envelope myExtentUtah = new ESRI.ArcGIS.Client.Geometry.Envelope(-12850560, 4409389, -11995243, 5177256);
              MyBookmarks.AddBookmark("Utah", myExtentUtah);
             }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub MyBookmarks_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function clears out any existing bookmarks and added several new ones to provide predefined
              ' functionality for zooming around the Four Corners states of the United States.
              
              ' Clear out any existing bookmarks. 
              MyBookmarks.ClearBookmarks()
              
              ' Add bookmarks for the various areas of the Four Corners region of the United States.
              Dim myExtentTheFourCorners As New ESRI.ArcGIS.Client.Geometry.Envelope(-12948716, 3633316, -11207358, 5196630)
              MyBookmarks.AddBookmark("The Four Corners", myExtentTheFourCorners)
              
              Dim myExtentArizona As New ESRI.ArcGIS.Client.Geometry.Envelope(-12921190, 3642001, -11973117, 4493139)
              MyBookmarks.AddBookmark("Arizona", myExtentArizona)
              
              Dim myExtentColorado As New ESRI.ArcGIS.Client.Geometry.Envelope(-12190630, 4330502, -11325307, 5107351)
              MyBookmarks.AddBookmark("Colorado", myExtentColorado)
              
              Dim myExtentNewMexico As New ESRI.ArcGIS.Client.Geometry.Envelope(-12289052, 3647640, -11371077, 4471758)
              MyBookmarks.AddBookmark("New Mexico", myExtentNewMexico)
              
              Dim myExtentUtah As New ESRI.ArcGIS.Client.Geometry.Envelope(-12850560, 4409389, -11995243, 5177256)
              MyBookmarks.AddBookmark("Utah", myExtentUtah)
              
            End Sub
            </code>
            </example>
            <param name="name">Display name (aka. named Map.Extent or bookmark).</param>
            <param name="extent">The Map.Extent of the bookmark.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.DeleteBookmarkAt(System.Int32)">
            <summary>
            Deletes a bookmark from the DataGrid sub-component of the Bookmark Control at a specified index.
            </summary>
            <remarks>
            <para>
            The DeleteBookmark Method deletes a single Bookmark from the ObservableCollection(Of Bookmark.MapBookmark) 
            object. The ObservableCollection(Of Bookmark.MapBookmark) object is internally bound to the DataGrid 
            sub-component in the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark">Bookmark</see> Control. Use the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Bookmarks">Bookmark.Bookmarks</see> Property to obtain the 
            ObservableCollection(Of Bookmark.MapBookmark) object. 
            </para>
            <para>
            Unlike the <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.AddBookmark(System.String,ESRI.ArcGIS.Client.Geometry.Envelope)">Bookmark.AddBookmark</see> Method 
            which takes a <b>name</b> and a <b>Map.Extent</b> as parameters to add items into the ObservableCollection, 
            the DeleteBookmark Method requires an Integer <b>index</b> value to remove an item from the 
            ObservableCollection. No Method exists as of the Silverlight/WPF/Windows Phone version 2.2 to remove an item 
            from the ObservableCollection by its name. 
            </para>
            <para>
            The top-most Bookmark listed in the DataGrid sub-component of the Bookmark Control is the zero (0) item index 
            value.
            </para>
            <para>
            As of the Silverlight/WPF/Windows Phone version 2.2 there is no Property/Method on the Bookmark Control to 
            obtain the selected index value(s) of the DataGrid sub-component from client user interaction. However, 
            developers can change the core behavior of any of the sub-components and their appearance of the Bookmark 
            Control (including the obtaining selection index values of the DataGrid sub-component) by modifying the 
            Control Template in XAML and the associated code-behind file. The easiest way to modify the UI sub-components 
            is using Microsoft Expression Blend. Then developers can delete/modify existing or add new sub-components in 
            Visual Studio to create a truly customized experience. A general approach to customizing a Control Template 
            is discussed in the ESRI blog entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>. 
            An example of modifying the Control Template of the Bookmark control to obtain the selection index value 
            of the DataGrid sub-component in the Bookmark Control is provided in the code example section of this 
            document.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Pan/Zoom to a desired Map.Extent then type in some text for the name of the Bookmark and click the Add button. 
            Repeat several times at other extents to create more Bookmarks. The 'Clear All' button removes all the 
            Bookmarks. The 'Clear Selected' button only removes the Bookmark for which is chosen in the DataGrid using 
            the DeleteBookmarkAt Method. The 'Add' button has the behavior of adding a named Map.Extent (aka. a bookmark) 
            to the DataGrid with the additionally functionality of clearing the TextBox once the 'Add' button has been 
            clicked.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="A customized Bookmark Control via Control Template that demonstrates using the DeleteBookmarkAt Method." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Bookmark.DeleteBookmarkAt.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
              
              &lt;!-- 
              Use the Resources section to hold a Style for setting the appearance and behavior of the Bookmark Control. 
              Don't forget to add following XAML Namespace definitions to the correct location in your code:
              xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
              xmlns:esri="http://schemas.esri.com/arcgis/client/2009" 
              --&gt;
              &lt;Grid.Resources&gt;
                    
                &lt;!--
                The majority of the XAML that defines the ControlTemplate for the Bookmark Control was obtained
                by using Microsoft Blend. See the blog post entitled: 'Use control templates to customize the 
                look and feel of ArcGIS controls' at the following Url for general How-To background:
                http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx
                --&gt;  
                &lt;Style x:Key="BookmarkStyle1" TargetType="esri:Bookmark"&gt;
                  &lt;Setter Property="MaxHeight" Value="200"/&gt;
                  &lt;Setter Property="Width" Value="120"/&gt;
                  &lt;Setter Property="Background" Value="#99000000"/&gt;
                  
                  &lt;!-- The Title.Value was modified. --&gt;
                  &lt;Setter Property="Title" Value="Custom Bookmarks"/&gt; 
                          
                  &lt;Setter Property="BorderThickness" Value="1"/&gt;
                  &lt;Setter Property="BorderBrush" Value="White"/&gt;
                  &lt;Setter Property="Template"&gt;
                    &lt;Setter.Value&gt;
                      &lt;ControlTemplate TargetType="esri:Bookmark"&gt;
                        &lt;Grid Background="Yellow"&gt;
                          &lt;Grid.RowDefinitions&gt;
                            &lt;RowDefinition Height="25"/&gt;
                            &lt;RowDefinition Height="20"/&gt;
                            &lt;RowDefinition Height="*"/&gt;
                            &lt;RowDefinition Height="25"/&gt;
                          &lt;/Grid.RowDefinitions&gt;
                          &lt;Border BorderBrush="{TemplateBinding BorderBrush}" 
                                  BorderThickness="{TemplateBinding BorderThickness}" 
                                  Background="{TemplateBinding Background}" 
                                  CornerRadius="5" 
                                  Grid.RowSpan="4"/&gt;
                          &lt;TextBlock Foreground="Black" FontWeight="Bold" FontSize="12" 
                                     FontFamily="Verdana" Margin="5,5,5,0" 
                                     Grid.Row="0" Text="{TemplateBinding Title}"/&gt;
                          &lt;Grid Margin="5,0,5,0" Grid.Row="1"&gt;
                            &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                              &lt;ColumnDefinition Width="30"/&gt;
                            &lt;/Grid.ColumnDefinitions&gt;
                            &lt;TextBox x:Name="AddBookmarkName" Grid.Column="0" Width="200"/&gt;
                              
                            &lt;!-- 
                            Comment out the default Button with its default behavior. We will out our own
                            button and wire-up our own functionality.
                            --&gt;
                            &lt;!-- &lt;Button x:Name="AddBookmark" Content="+" Grid.Column="1" /&gt; --&gt;
                              
                            &lt;!--
                            This Button is new and has different functionality from the default + (i.e. AddBookmark) 
                            Button provided with the Bookmark Control. The new Button will have a different
                            Content value and will automatically erase what was in the TextBox once a new
                            bookmark is added. Note that the Click Event is wired up.
                            --&gt;
                            &lt;Button x:Name="AddBookmarkNEW" Content="Add" Grid.Column="1" Click="AddBookmarkNEW_Click" /&gt;
                          
                          &lt;/Grid&gt;
                            
                          &lt;!--
                          Changed the default behavior of the DataGrid sub-component of the Bookmark Control.
                          In particular we added a SelectionChanged Event handler and changed the SelectionMode
                          to Single so that only one bookmark could be selected at a time for the 
                          ClearSelectedBookmark Button to work appropriately.
                          --&gt;
                          &lt;sdk:DataGrid x:Name="BookmarkList" AutoGenerateColumns="False" CanUserResizeColumns="False" 
                                        CanUserReorderColumns="False" HeadersVisibility="None" Margin="5,0,5,0" 
                                        Grid.Row="2" RowHeight="16" RowDetailsVisibilityMode="Collapsed" 
                                        TabNavigation="Local" Visibility="Visible"
                                        SelectionChanged="BookmarkList_SelectionChanged"
                                        SelectionMode="Single"&gt;
                            
                            &lt;sdk:DataGrid.Columns&gt;
                              &lt;sdk:DataGridTextColumn Binding="{Binding Name, Mode=TwoWay}" Foreground="Black" 
                                                     FontSize="10" FontFamily="Times" Header="Bookmark" 
                                                      IsReadOnly="False" Width="{TemplateBinding Width}"/&gt;
                            &lt;/sdk:DataGrid.Columns&gt;
                          &lt;/sdk:DataGrid&gt;
                          &lt;Grid Margin="5,0,5,5" Grid.Row="3"&gt;
                            &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                            &lt;/Grid.ColumnDefinitions&gt;
                                
                            &lt;!-- Modified the default Content of the Button to be more explicit. --&gt;
                            &lt;Button x:Name="ClearBookmarks" Content="Clear All" Grid.Column="0"/&gt;
                            
                            &lt;!--
                            This Button is new and adds the ability to Delete just the selected bookmark from
                            the DataGrid sub-control. Notice that the Click Event is wired up for use in the
                            code-behind.
                            --&gt;
                            &lt;Button x:Name="ClearSelectedBookmark" Content="Clear Selected" Grid.Column="1" 
                                    Click="ClearSelectedBookmark_Click"/&gt;
                              
                          &lt;/Grid&gt;
                        &lt;/Grid&gt;
                      &lt;/ControlTemplate&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                &lt;/Style&gt;
              &lt;/Grid.Resources&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="70" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                       TextWrapping="Wrap" Margin="2,9,0,0" 
                       Text="Pan/Zoom to a desired Map.Extent then type in some text for the name of the Bookmark and click
                            the Add button. Repeat several times at other extents to create more Bookmarks. The 'Clear All' 
                            button removes all the Bookmarks. The 'Clear Selected' button only removes the Bookmark for 
                            which is chosen in the DataGrid using the DeleteBookmarkAt Method. The ‘Add’ button has the 
                            behavior of adding a named Map.Extent (aka. a bookmark) to the DataGrid with the additionally 
                            functionality of clearing the TextBox once the ‘Add’ button has been clicked." /&gt;
              
              &lt;!-- Add a Map Control to the application and define an intial Map.Extent. --&gt;
              &lt;esri:Map x:Name="MyMap" Extent="-15000000,2000000,-7000000,8000000"
                        Background="White" HorizontalAlignment="Left" Margin="12,85,0,0"  
                        VerticalAlignment="Top" Height="360" Width="401"&gt;
                  
                &lt;!-- Add an ArcGISTiledMapServiceLayer for some quick data display. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer 
                      Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add a Bookmark Control. It is important to provide an x:Name attribute so it can be referenced
              in the code-behind. Define the Style of the Bookmark to use the Control Template that was generated
              in Blend and modified here in Visual Studio. The Map Property uses the default two-way Binding to 
              associate the Bookmark Control with the Map Control.
              --&gt;
              &lt;esri:Bookmark x:Name="MyBookmarks" Width="200" HorizontalAlignment="Right" VerticalAlignment="Top" 
                             Margin="0,85,12,0" Background="#CC919191" BorderBrush="#FF92a8b3" Foreground="Black"   
                             Style="{StaticResource BookmarkStyle1}" Map="{Binding ElementName=MyMap}" /&gt;
            
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            // This is a Member (aka. Global) variable that will contain the currently selected index value
            // for the DataGrid sub-component in the Bookmark Control.
            public int _SelectedIndex = -1;
              
            private void BookmarkList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
            {
              // This function obtains the index location of the last cell a user clicked in the DataGrid
              // sub-component in the Bookmark Control. It stores that value in the Global variable _SelectedIndex.
              
              // Note: There is a bug in the Bookmark.SelectionChanged Event where it always fires twice when a
              // DataGrid cell is selected. The first time the Bookmark.SelectionChanged Event fires the correct
              // DataGrid.SelectedIndex value is obtained but then the Event fires a second time and always
              // set the DataGrid.SelectedIndex value to -1. So this code is a workaround.
              
              // Get the DataGrid sub-component of the Bookmark Control.
              DataGrid myDataGrid = (DataGrid)sender;
              
              // Get the ObservableCollection&lt;MapBookmark&gt; objects (aka. the named Map.Extent values).
              Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt; theBookmarks = null;
              theBookmarks = MyBookmarks.Bookmarks;
              //theBookmarks = myDataGrid.ItemsSource; // This would work too!
              
              // Only perform this operation if there at least one named Map.Extent (aka. a bookmark) value.
              if (theBookmarks.Count &gt; 0)
              {
                // Screen out the second firing of this Event.
                if (myDataGrid.SelectedIndex != -1)
                {
                  // Set the Member variable to the currently selected cell in the DataGrid sub-component of the BookMark 
                  // Control. NOTE: the DataGrid.SelectionMode was set to 'Single' in XAML so that only one bookmark could 
                  // be selected at a time for the ClearSelectedBookmark Button to work appropriately.
                  _SelectedIndex = myDataGrid.SelectedIndex;
                }
              }
            }
            
            private void ClearSelectedBookmark_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function deletes a named Map.Extent (aka. a bookmark) from the DataGrid portion of the 
              // Bookmark Control via its index location. The _SelectedIndex object is a global (aka. Member) 
              // variable and hold the current value of the DataGrid.SelectedItem.
              
              // Only process _SelectedIndex values not equal to -1.
              if (_SelectedIndex != -1)
              {
                // Delete the specific named Map.Extent (aka. a bookmark) at the specified _SelectedIndex value.
                MyBookmarks.DeleteBookmarkAt(_SelectedIndex);
              }
            }
            
            private void AddBookmarkNEW_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function obtains the sub-component TextBox that of the Bookmark Control where the user 
              // enters a name for the Map.Extent from the XAML hierarchy defined in the ControlTemplate. In
              // the case of the XAML code you need to go up two levels (i.e. Parent) in order to use the
              // .FindName() function to obtain the desired TextBox by its name. Then add a named Map.Extent
              // (aka. a bookmark) to the DataGrid sub-components of the Bookmark Control. Finally, clear out 
              // the text of the TextBox after the newly added Bookmark was added.
              
              // Traverse through the ControlTemplate hierarchy of controls to find the desired TextBox.
              Button myButton = (Button)sender;
              Grid myGrid1 = (Grid)myButton.Parent;
              Grid mygrid2 = (Grid)myGrid1.Parent;
              TextBox myTextBox = (TextBox)mygrid2.FindName("AddBookmarkName");
              
              // Add a bookmark for the current Map.Extent using the name in the TextBox provided by the user.
              MyBookmarks.AddBookmark(myTextBox.Text, MyMap.Extent);
              
              // Clear out the text in the TextBox for the next round.
              myTextBox.Text = "";
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            ' This is a Member (aka. Global) variable that will contain the currently selected index value
            ' for the DataGrid sub-componet in the Bookmark Control.
            Public _SelectedIndex As Integer = -1
              
            Private Sub BookmarkList_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
              
              ' This function obtains the index location of the last cell a user clicked in the DataGrid
              ' sub-component in the Bookmark Control. It stores that value in the Global variable _SelectedIndex.
              
              ' Note: There is a bug in the Bookmark.SelectionChanged Event where it always fires twice when a
              ' DataGrid cell is selected. The first time the Bookmark.SelectionChanged Event fires the correct
              ' DataGrid.SelectedIndex value is obtained but then the Event fires a second time and always
              ' set the DataGrid.SelectedIndex value to -1. So this code is a workaround.
              
              ' Get the DataGrid sub-component of the Bookmark Control.
              Dim myDataGrid As DataGrid = sender
              
              ' Get the ObservableCollection(Of MapBookmark) objects (aka. the named Map.Extent values).
              Dim theBookmarks As Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark)
              theBookmarks = MyBookmarks.Bookmarks
              'theBookmarks = myDataGrid.ItemsSource 'This would work too!
              
              ' Only perform this operation if there at least one named Map.Extent (aka. a bookmark) value.
              If theBookmarks.Count &gt; 0 Then
                
                ' Screen out the second firing of this Event.
                If myDataGrid.SelectedIndex &lt;&gt; -1 Then
                  
                  ' Set the Member variable to the currently selected cell in the DataGrid sub-component of the BookMark 
                  ' Control. NOTE: the DataGrid.SelectionMode was set to 'Single' in XAML so that only one bookmark could 
                  ' be selected at a time for the ClearSelectedBookmark Button to work appropriately.
                  _SelectedIndex = myDataGrid.SelectedIndex
                  
                End If
                
              End If
              
            End Sub
            
            Private Sub ClearSelectedBookmark_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function deletes a named Map.Extent (aka. a bookmark) from the DataGrid portion of the 
              ' Bookmark Control via its index location. The _SelectedIndex object is a global (aka. Member) 
              ' variable and hold the current value of the DataGrid.SelectedItem.
              
              ' Only process _SelectedIndex values not equal to -1.
              If _SelectedIndex &lt;&gt; -1 Then
              
                ' Delete the specific named Map.Extent (aka. a bookmark) at the specified _SelectedIndex value.
                MyBookmarks.DeleteBookmarkAt(_SelectedIndex)
              
              End If
              
            End Sub
            
            Private Sub AddBookmarkNEW_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function obtains the sub-component TextBox that of the Bookmark Control where the user 
              ' enters a name for the Map.Extent from the XAML hierarchy defined in the ControlTemplate. In
              ' the case of the XAML code you need to go up two levels (i.e. Parent) in order to use the
              ' .FindName() function to obtain the desired TextBox by its name. Then add a named Map.Extent
              ' (aka. a bookmark) to the DataGrid sub-components of the Bookmark Control. Finally, clear out 
              ' the text of the TextBox after the newly added Bookmark was added.
              
              ' Traverse through the ControlTemplate hierarchy of controls to find the desired TextBox.
              Dim myButton As Button = sender
              Dim myGrid1 As Grid = myButton.Parent
              Dim mygrid2 As Grid = myGrid1.Parent
              Dim myTextBox As TextBox = mygrid2.FindName("AddBookmarkName")
              
              ' Add a bookmark for the current Map.Extent using the name in the TextBox provided by the user.
              MyBookmarks.AddBookmark(myTextBox.Text, MyMap.Extent)
              
              ' Clear out the text in the TextBox for the next round.
              myTextBox.Text = ""
              
            End Sub
            </code>
            </example>
            <param name="index">The index value of the bookmark to remove from the ObservableCollection.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.ClearBookmarks">
            <summary>
            Clears the bookmarks.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Bookmark.TitleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Title"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Bookmarks">
            <summary>
            Gets the ObservableCollection containing 
            <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark">Bookmark.MapBookmark</see> objects that are 
            displayed in the DataGrid sub-component of the Bookmark Control.   
            </summary>
            <remarks>
            <para>
            The Bookmark.Bookmarks Property gets a ReadOnly ObservableCollection(Of 
            <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark">Bookmark.MapBookmark</see>) object. This 
            object is used to store the named Map.Extent pairs (aka. bookmarks) that are displayed in the DataGrid 
            sub-component of the Bookmark Control. When a Bookmark Control is created, the ObservableCollection 
            (Of MapBookmark) object is also created. Although the MapBookmark.Bookmarks Property is ReadOnly, meaning 
            you can only get the ObservableCollection (Of MapBookmark) object, you can use the regular 
            ObservableCollection Members to like: 
            <a href="http://msdn.microsoft.com/en-us/library/ms132404(v=VS.95).aspx" target="_blank">Add</a>, 
            <a href="http://msdn.microsoft.com/en-us/library/ms132405(v=VS.95).aspx" target="_blank">Clear</a>, 
            <a href="http://msdn.microsoft.com/en-us/library/ms132413(v=VS.95).aspx" target="_blank">Remove</a>, 
            etc. to define how the Bookmark Control behaves. <b>NOTE:</b> You cannot create an new instance of the 
            ObservableCollection (Of MapBookmark) object and set it to the Bookmark.Bookmarks Property, use the 
            ObservableCollection.Add Property instead. 
            </para>
            <para>
            You can also control the behavior of the ObservableCollection (Of MapBookmark) object by using the 
            <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.AddBookmark(System.String,ESRI.ArcGIS.Client.Geometry.Envelope)">AddBookmark</see>, 
            <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.ClearBookmarks">ClearBookmarks</see>, and 
            <see cref="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.DeleteBookmarkAt(System.Int32)">DeleteBookmarkAt</see> Methods. 
            </para>
            <para>
            By default the 
            <b>ESRI.ArcGIS.Client.Toolkit.Bookmark.UseIsolatedStorage</b> value 
            equals True. This means that the application will remember from one session to another the named Map.Extent 
            (aka. a bookmark) values previously entered. If the Bookmark.UseIsolatedStorage is set to False, the next 
            time a user begins another client session of the application the named Map.Extent (aka. a bookmark) settings 
            will be lost. <b>Note:</b> There is only one <b>IsolatedStorage</b> container per application. This may have 
            implications if you have multiple Maps, each with their own set of bookmarks. This means you may need to make 
            use of the Bookmark.Bookmarks Property to persist across the various Maps.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the different RadioButtons to change the items in the Bookmark Control. Then click the various 
            Bookmark.MapBookmark items in the Bookmark Control to zoom to the different Extents.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="An example of swapping different items in the ObservableCollection of Bookmark.Bookmarks." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Bookmark.Bookmarks.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="52" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                       TextWrapping="Wrap" Margin="2,9,0,0" 
                       Text="Click the different RadioButtons to change the items in the Bookmark Control. Then click the
                            various Bookmark.MapBookmark items in the Bookmark Control to zoom to the different Extents." /&gt;
              
              &lt;!-- Add a Map Control. --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,85,0,0" Name="Map1" 
                        VerticalAlignment="Top" Height="360" Width="401" &gt;
                    
                &lt;!-- Add an ArcGISTiledMapServiceLayer for a data source. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="PhysicalTiledLayer" 
                             Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/&gt;
              &lt;/esri:Map&gt;
              
              &lt;!-- Add a Bookmark Control. Bind the Bookmark.Map Property to the Map Control. --&gt;
              &lt;esri:Bookmark HorizontalAlignment="Left" Margin="426,85,0,0" Name="Bookmark1" 
                             VerticalAlignment="Top" Width="179" 
                             Map="{Binding ElementName=Map1}"/&gt;
                  
              &lt;!-- 
              Add a RadioButton that will correspond to State level predefined Map.Extents. The Click Event is
              Wired-up for use with the code-behind. Note how it uses the same Event handler as the other
              Radio Buttons. It is the use of the RadioButton.Tag Property that will help the code-behind
              functions know which RadioButton was chosen.
              --&gt;
              &lt;RadioButton Content="State (FL and GA)" Height="16" HorizontalAlignment="Left" Margin="12,67,0,0"
                           Name="RadioButton_State" VerticalAlignment="Top" Click="RadioButtons"
                           Tag="State"/&gt;
              
              &lt;!-- 
              Add a RadioButton that will correspond to local level predefined Map.Extents. The Click Event is
              Wired-up for use with the code-behind. Note how it uses the same Event handler as the other
              Radio Buttons. It is the use of the RadioButton.Tag Property that will help the code-behind
              functions know which RadioButton was chosen.
              --&gt;
              &lt;RadioButton Content="Florida (local)" Height="16" HorizontalAlignment="Left" Margin="154,67,0,0" 
                           Name="RadioButton_Local_FL" VerticalAlignment="Top" Click="RadioButtons" 
                           Tag="FL"/&gt;
              
              &lt;!-- 
              Add a RadioButton that will correspond to local level predefined Map.Extents. The Click Event is
              Wired-up for use with the code-behind. Note how it uses the same Event handler as the other
              Radio Buttons. It is the use of the RadioButton.Tag Property that will help the code-behind
              functions know which RadioButton was chosen.
              --&gt;
              &lt;RadioButton Content="Georgia (local)" Height="16" HorizontalAlignment="Left" Margin="288,67,0,0" 
                           Name="RadioButton_Local_GA" VerticalAlignment="Top" Click="RadioButtons"
                           Tag="GA"/&gt;
              
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void RadioButtons(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function serves as the Click Event handler for the three RadioButtons. Get the .Tag 
              // Property from the RadioButton to construct an ObservableCollecton of MapBookmark objects. 
              // Then add the MapBookmark items to the Bookmark Control.
              
              // Get the RadioButton from the sender.
              RadioButton theRadioButton = (RadioButton)sender;
              
              // Get the String identifying which RadioButton we have from the RadioButton.Tag Property.
              string theTag = (string)theRadioButton.Tag;
              
              // Get the ObservableCollection&lt;Of MapBookmark&gt; object based upon which RadioButton the user chose.
              Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt; myObservableCollectionOfMapBookmark = null;
              myObservableCollectionOfMapBookmark = GenerateObservableCollectionOfMapBookmark(theTag);
              
              // Clear out any existing MapBookmark objects from the Bookmark Control.
              Bookmark1.ClearBookmarks();
              
              // Loop through the ObservableCollection&lt;MapBookmark&gt; object and add each MapBookmark to 
              // the Bookmark Control using the .Bookmarks Property.
              foreach (ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark oneMapBookmark in myObservableCollectionOfMapBookmark)
              {
                // The Bookmark.Bookmarks Property returns a ReadOnly ObservableCollection&lt;MapBookmark&gt; 
                // object. So to get items in the ObservableCollection, use the Add Property.
                Bookmark1.Bookmarks.Add(oneMapBookmark);
              
                // This could be an alternative way to add a MapBookmark to the ObservableCollection!
                // Bookmark1.AddBookmark(oneMapBookmark.Name, oneMapBookmark.Extent);
              }
              
              // NOTE: Because the Bookmark.Bookmarks Property returns a Read Only 
              // ObservableCollection&lt;MapBookmark&gt;, you CANNOT do this:
              // Bookmark1.Bookmarks = myObservableCollectionOfMapBookmark;
            }
            
            public Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt; GenerateObservableCollectionOfMapBookmark(string theTag)
            {
              // This the main function that generates the correct set of MapBookmark items to be added to the
              // Bookmark Control. Depending on which RadioButton the user chose will determine what gets added to
              // the ObservableCollection&lt;MapBookmark&gt;.
              
              // Create a new instance of the ObservableCollection&lt;MapBookmark&gt;.
              Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt; theBookmarks = new Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark&gt;();
              
              if (theTag == "State")
              {
                // Generate MapBookmark's for a State level of viewing.
                theBookmarks.Add(MakeMapBookmark("Florida and Georgia", new ESRI.ArcGIS.Client.Geometry.Envelope(-10126037, 2750924, -8487426, 4221996)));
                theBookmarks.Add(MakeMapBookmark("Florida", new ESRI.ArcGIS.Client.Geometry.Envelope(-9808676, 2779124, -8812475, 3673469)));
                theBookmarks.Add(MakeMapBookmark("Georgia", new ESRI.ArcGIS.Client.Geometry.Envelope(-9633752, 3534963, -8898290, 4195229)));
              }
              else if (theTag == "FL")
              {
                // Generate MapBookmark's for a local level of viewing.
                theBookmarks.Add(MakeMapBookmark("Jacksonville", new ESRI.ArcGIS.Client.Geometry.Envelope(-9105796, 3532477, -9075555, 3559626)));
                theBookmarks.Add(MakeMapBookmark("Miami", new ESRI.ArcGIS.Client.Geometry.Envelope(-8936736, 2965084, -8918792, 2981193)));
                theBookmarks.Add(MakeMapBookmark("Tampa", new ESRI.ArcGIS.Client.Geometry.Envelope(-9194994, 3225279, -9165864, 3251430)));
              }
              else if (theTag == "GA")
              {
                // Generate MapBookmark's for a local level of viewing.
                theBookmarks.Add(MakeMapBookmark("Atlanta", new ESRI.ArcGIS.Client.Geometry.Envelope(-9421000, 3975108, -9367812, 4022858)));
                theBookmarks.Add(MakeMapBookmark("Columbus", new ESRI.ArcGIS.Client.Geometry.Envelope(-9464616, 3820843, -9455555, 3828978)));
                theBookmarks.Add(MakeMapBookmark("Savannah", new ESRI.ArcGIS.Client.Geometry.Envelope(-9043472, 3757220, -9013688, 3783958)));
              }
              
              // Return the ObservableCollection&lt;MapBookmark&gt; to the caller.
              return theBookmarks;
            }
            
            public ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark MakeMapBookmark(string aName, ESRI.ArcGIS.Client.Geometry.Envelope anExtent)
            {
              // A helper function to create a single MapBookmark based upon an input Name and Extent.
              ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark aMapBookmark = new ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark();
              aMapBookmark.Name = aName;
              aMapBookmark.Extent = anExtent;
              
              // Return the MapBookmark to the caller.
              return aMapBookmark;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub RadioButtons(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function serves as the Click Event handler for the three RadioButtons. Get the .Tag 
              ' Property from the RadioButton to construct an ObservableCollecton of MapBookmark objects. 
              ' Then add the MapBookmark items to the Bookmark Control.
              
              ' Get the RadioButton from the sender.
              Dim theRadioButton As RadioButton = sender
              
              ' Get the String identifying which RadioButton we have from the RadioButton.Tag Property.
              Dim theTag As String = theRadioButton.Tag
              
              ' Get the ObservableCollection(Of MapBookmark) object based upon which RadioButton the user chose.
              Dim myObservableCollectionOfMapBookmark As Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark)
              myObservableCollectionOfMapBookmark = GenerateObservableCollectionOfMapBookmark(theTag)
              
              ' Clear out any existing MapBookmark objects from the Bookmark Control.
              Bookmark1.ClearBookmarks()
              
              ' Loop through the ObservableCollection(Of MapBookmark) object and add each MapBookmark to 
              ' the Bookmark Control using the .Bookmarks Property.
              For Each oneMapBookmark As ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark In myObservableCollectionOfMapBookmark
              
                ' The Bookmark.Bookmarks Property returns a ReadOnly ObservableCollection(Of MapBookmark) 
                ' object. So to get items in the ObservableCollection, use the Add Property.
                Bookmark1.Bookmarks.Add(oneMapBookmark)
                
                ' This could be an alternative way to add a MapBookmark to the ObservableCollection!
                'Bookmark1.AddBookmark(oneMapBookmark.Name, oneMapBookmark.Extent)
                
              Next
              
              ' NOTE: Because the Bookmark.Bookmarks Property returns a Read Only 
              ' ObservableCollection(Of MapBookmark), you CANNOT do this:
              'Bookmark1.Bookmarks = myObservableCollectionOfMapBookmark
              
            End Sub
            
            Public Function GenerateObservableCollectionOfMapBookmark(ByVal theTag As String) As Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark)
              
              ' This the main function that generates the correct set of MapBookmark items to be added to the
              ' Bookmark Control. Depending on which RadioButton the user chose will determine what gets added to
              ' the ObservableCollection(Of MapBookmark).
              
              ' Create a new instance of the ObservableCollection(Of MapBookmark).
              Dim theBookmarks As New Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark)
              
              If theTag = "State" Then
                
                ' Generate MapBookmark's for a State level of viewing.
                theBookmarks.Add(MakeMapBookmark("Florida and Georgia", New ESRI.ArcGIS.Client.Geometry.Envelope(-10126037, 2750924, -8487426, 4221996)))
                theBookmarks.Add(MakeMapBookmark("Florida", New ESRI.ArcGIS.Client.Geometry.Envelope(-9808676, 2779124, -8812475, 3673469)))
                theBookmarks.Add(MakeMapBookmark("Georgia", New ESRI.ArcGIS.Client.Geometry.Envelope(-9633752, 3534963, -8898290, 4195229)))
                
              ElseIf theTag = "FL" Then
                
                ' Generate MapBookmark's for a local level of viewing.
                theBookmarks.Add(MakeMapBookmark("Jacksonville", New ESRI.ArcGIS.Client.Geometry.Envelope(-9105796, 3532477, -9075555, 3559626)))
                theBookmarks.Add(MakeMapBookmark("Miami", New ESRI.ArcGIS.Client.Geometry.Envelope(-8936736, 2965084, -8918792, 2981193)))
                theBookmarks.Add(MakeMapBookmark("Tampa", New ESRI.ArcGIS.Client.Geometry.Envelope(-9194994, 3225279, -9165864, 3251430)))
                
              ElseIf theTag = "GA" Then
                
                ' Generate MapBookmark's for a local level of viewing.
                theBookmarks.Add(MakeMapBookmark("Atlanta", New ESRI.ArcGIS.Client.Geometry.Envelope(-9421000, 3975108, -9367812, 4022858)))
                theBookmarks.Add(MakeMapBookmark("Columbus", New ESRI.ArcGIS.Client.Geometry.Envelope(-9464616, 3820843, -9455555, 3828978)))
                theBookmarks.Add(MakeMapBookmark("Savannah", New ESRI.ArcGIS.Client.Geometry.Envelope(-9043472, 3757220, -9013688, 3783958)))
                
              End If
              
              ' Return the ObservableCollection(Of MapBookmark) to the caller.
              Return theBookmarks
              
            End Function
            
            Public Function MakeMapBookmark(ByVal aName As String, ByVal anExtent As ESRI.ArcGIS.Client.Geometry.Envelope) As ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark
              
              ' A helper function to create a single MapBookmark based upon an input Name and Extent.
              Dim aMapBookmark As New ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark
              aMapBookmark.Name = aName
              aMapBookmark.Extent = anExtent
              
              ' Return the MapBookmark to the caller.
              Return aMapBookmark
              
            End Function
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Map">
            <summary>
            Gets or sets the map that the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Bookmark"/> is buddied to.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.Title">
            <summary>
            Gets or sets the title.
            </summary>
            <value>The title.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark">
            <summary>
            Bookmark class for storing named extents
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark.Name">
            <summary>
            Gets or sets the name.
            </summary>
            <value>The name.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Bookmark.MapBookmark.Extent">
            <summary>
            Gets or sets the extent.
            </summary>
            <value>The extent.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.CollectionExtensions">
            <summary>
            IEnumerable extensions : ToObservableCollection, ForEach, Descendants, Leaves
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.CollectionExtensions.ToObservableCollection``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Converts an enumerable to an observable collection.
            </summary>
            <typeparam name="T">The type of objects in the enumeration.</typeparam>
            <param name="enumerable">The enumerable.</param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.CollectionExtensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
             Performs the specified action on each element of the enumeration.
            </summary>
            <typeparam name="T">The type of objects in the enumeration.</typeparam>
            <param name="enumerable">The enumerable.</param>
            <param name="action">The System.Action delegate to perform on each element of the enumeration.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.CollectionExtensions.Descendants``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Find all descendants from an enumerable.
            </summary>
            <typeparam name="T">The type of objects in the enumeration.</typeparam>
            <param name="enumerable">The enumerable.</param>
            <param name="childrenDelegate">The children delegate.</param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.CollectionExtensions.Leaves``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Find all leaves from an enumerable.
            </summary>
            <typeparam name="T">The type of objects in the enumeration.</typeparam>
            <param name="enumerable">The enumerable.</param>
            <param name="childrenDelegate">The children delegate.</param>
            <returns></returns>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.MapTip">
            <summary>
            Graphics Layer MapTip control
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapTip.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MapTip"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapTip.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MapTip"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapTip.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code or internal processes (such as a rebuilding layout pass) call <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapTip.Expand(System.Boolean)">
            <summary>
            Expands the maptip
            </summary>
            <param name="useTransitions">if set to <c>true</c> will use transitions.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapTip.Collapse(System.Boolean)">
            <summary>
            Collapses the maptip.
            </summary>
            <param name="useTransitions">if set to <c>true</c> will use transitions.</param>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.GraphicsLayerProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.GraphicsLayer"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.TitleMemberProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.TitleMember"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.TitleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.Title"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.HorizontalOffsetProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.HorizontalOffset"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.VerticalOffsetProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.VerticalOffset"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.ItemsSourceProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.ItemsSource"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.currentFeature">
            <summary>The current active feature</summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapTip.mouseIsOver">
            <summary>True if the mouse is over either the graphic or the maptip</summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapTip.GraphicsLayer">
            <summary>
            Gets or sets the graphics layer that the maptip is associated with.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapTip.TitleMember">
            <summary>
            Gets or sets the Graphic Attribute Key used for setting the title 
            on the MapTip. This is overridden if the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.Title"/> property is set.
            </summary>
            <value>The map tip title member.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapTip.Title">
            <summary>
            Gets or sets the title displayed in the MapTip. It can be a either a string or a FrameworkElement.
            It will override any settings set using <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapTip.TitleMember"/>.
            </summary>
            <value>The map tip title.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapTip.HorizontalOffset">
            <summary>
            Gets or sets the horizontal offset.
            </summary>
            <value>The horizontal offset.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapTip.VerticalOffset">
            <summary>
            Gets or sets the vertical offset.
            </summary>
            <value>The vertical offset.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapTip.ItemsSource">
            <summary>
            Gets or sets the items source used for data binding.
            </summary>
            <value>The items source.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ToolbarIndexChangedHandler">
            <summary>
            Handler for the Toolbar Index Changed
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItemMouseEnter">
            <summary>
            Handler for the Toolbar item Mouse enter
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItemMouseLeave">
            <summary>
            Handler for the Toolbar item Mouse Leave
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.SelectedToolbarItemArgs">
            <summary>
            Used with the Toolbar to pass along Event arguments used with the selected toolbar item.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.SelectedToolbarItemArgs.#ctor(ESRI.ArcGIS.Client.Toolkit.ToolbarItem,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.SelectedToolbarItemArgs"/> class.
            </summary>
            <param name="tbarItem">The tbar item.</param>
            <param name="tbarIndex">Index of the tbar.</param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SelectedToolbarItemArgs.Item">
            <summary>
            Gets the selected <see cref="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItem"/>.
            </summary>
            <value>The <see cref="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItem"/>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SelectedToolbarItemArgs.Index">
            <summary>
            Gets the index.
            </summary>
            <value>The index of the selected <see cref="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItem"/>.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.OverviewMap">
            <summary>
            OverviewMap Control
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.OverviewMap"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.OverviewMap"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code 
            or internal processes (such as a rebuilding layout pass) call
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.ArrangeOverride(System.Windows.Size)">
            <summary>
            Provides the behavior for the "Arrange" pass of Silverlight layout.
            Classes can override this method to define their own arrange pass behavior.
            </summary>
            <param name="finalSize">The final area within the parent that this
            object should use to arrange itself and its children.</param>
            <returns>The actual size used.</returns>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.OverviewMap.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.OverviewMap.MaximumExtentProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.MaximumExtent"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.OverviewMap.IsStaticProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.IsStatic"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.OverviewMap.LayerProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.Layer"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.Layer_LayersInitialized(System.Object,System.EventArgs)">
            <summary>
            Sets extents, limits, and events after layers have been initialized
            </summary>
            <param name="sender"></param>
            <param name="args"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.UpdateOVMap">
            <summary>
            Determines if the OverviewMap extent should be changed. If so, set new 
            extent and call ZoomTo or PanTo. If not, send to UpdateAOI
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.UpdateOVMap(System.Object,ESRI.ArcGIS.Client.ExtentEventArgs)">
            <summary>
            Overload of UpdateOVMap - ExtentEventHandler version
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.UpdateAOI">
            <summary>
            Sets size and position of AOI Box
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.OverviewMap.UpdateMap">
            <summary>
            Set new map extent of main map control. Called after AOI
            Box has been repositioned by user
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.Map">
            <summary>
            Sets or gets the Map control associated with the OverviewMap.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.MaximumExtent">
            <summary>
            Gets or sets  the maximum map extent of the overview map. 
            If undefined, the maximum extent is derived from the layer.
            </summary>
            <value>The maximum extent.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.IsStatic">
            <summary>
            Gets or sets a value indicating whether the overview map extent is static.
            </summary>
            <value>If true the extent of the overview map will never change. </value>
            <remarks>If true the extent will remain at <see cref="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.MaximumExtent"/>. If 
            MaximumExtent is not set the extent will remait at the full extent 
            of the layer.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.OverviewMap.Layer">
            <summary>
            Gets or sets the layer used in the overview map.
            </summary>
            <value>The layer.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.TemplatePicker">
            <summary>
            A template picker control enables selecting feature types to add 
            when editing a feature layer that is based on a feature service.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TemplatePicker"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TemplatePicker"/> control.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.GeometryServiceCredentialsProperty">
            <summary>
            Identifies the <see cref="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.GeometryServiceCredentialsProperty"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AlwaysDisplayDefaultTemplatesProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AlwaysDisplayDefaultTemplates"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AutoSelectProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AutoSelect"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AutoCompleteProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AutoComplete"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ContinuousProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Continuous"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.FreehandProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Freehand"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.GeometryServiceUrlProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.GeometryServiceUrl"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.LayerIDsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.LayerIDs"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ShowAttributesOnAddProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ShowAttributesOnAdd"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.MapProperty">
            /// <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.TemplatesProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Templates"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.TemplateGroupsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.TemplateGroups"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ItemTemplateProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ItemTemplate"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code
            or internal processes call <see cref="M:System.Windows.FrameworkElement.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.GeometryServiceCredentials">
            <summary>
            Gets or sets the network credentials that are sent to the host and used to authenticate the request.
            </summary>
            <value>The credentials used for authentication.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AlwaysDisplayDefaultTemplates">
            <summary>
            Gets or sets a value indicating whether default templates should 
            always be displayed.
            </summary>
            <remarks>
            Default templates are displayed when no other templates exist.
            </remarks>
            <value>
            	<c>true</c> if [always display default templates]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AutoSelect">
            <summary>
            Gets or sets a value indicating whether selection is automatic 
            for tools that require it.
            </summary>
            <remarks>
            Tools that use auto selection: Cut, Reshape, Union, and AutoComplete Add
            </remarks>
            <value><c>true</c> if [auto select]; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.AutoComplete">
            <summary>
            Gets or sets a value indicating whether auto completion is enabled 
            when adding polygons.
            </summary>
            <remarks>
            When AutoComplete is enabled, a line is drawn instead of a polygon 
            and the rest of the polygon is completed based on snapping to nearby features.
            </remarks>
            <value><c>true</c> if [auto complete]; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Continuous">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:ESRI.ArcGIS.Client.Toolkit.TemplatePicker"/> is continuous.
            </summary>
            <value><c>true</c> if continuous; otherwise, <c>false</c>.</value>
            <remarks>
            The template selected will remain active until a different template is selected.
            </remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Freehand">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:ESRI.ArcGIS.Client.Toolkit.TemplatePicker"/> 
            is using freehand draw mode when using Add, Reshape, Union and Cut.
            </summary>
            <value><c>true</c> if freehand; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.GeometryServiceUrl">
            <summary>
            Gets or sets the geometry service URL.
            </summary>
            <value>The geometry service URL.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.LayerIDs">
            <summary>
            Gets or sets the layer IDs of the layers for which templates are displayed.
            </summary>
            <remarks>
            Specified in XAML and in Blend as a comma-delimited string: If a layer 
            name contains a comma, please use &#44; instead of the comma.
            If null/empty, templates from all feature layers are used. Order of 
            the layer ids is respected in generating templates.
            </remarks>
            <value>The layer IDs.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ShowAttributesOnAdd">
            <summary>
            Gets or sets a value indicating whether the attributes are shown
            when a graphic is added to the feature layer
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Map">
            <summary>
            Gets or sets the map that the template picker is buddied to.
            </summary>
            <value>The map.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.Templates">
            <summary>
            Gets or sets the templates for all of the layers that the Template Picker is working with.
            </summary>
            <value>The templates.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.TemplateGroups">
            <summary>Gets or sets the template groups.</summary>
            <remarks>Each template group has the templates for a layer</remarks>		
            <value>The template groups.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.ItemTemplate">
            <summary>
            Gets or sets the data template for TemplatePicker
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.TemplatePicker.EditCompleted">
            <summary>
            Occurs when an edit has completed.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.TemplateGroup">
            <summary>
            A group of templates representing a layer in the template picker
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TemplateGroup.ToString">
            <summary>
            Returns the name of the layer.
            </summary>
            <returns></returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplateGroup.Name">
            <summary>
            Layer name.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TemplateGroup.Templates">
            <summary>
            The templates in a layer.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate">
            <summary>
            The template in a template picker layer
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.ToString">
            <summary>
            Returns the name of the symbolTemplate.
            </summary>
            <returns>The name of the symbolTemplate</returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.Name">
            <summary>
            The name of the template 
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.TypeID">
            <summary>
            The feature type id of the template
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.Symbol">
            <summary>
            The symbol for the template
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.Editor">
            <summary>
            The editor that executes the Add command
            </summary>			
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.Description">
            <summary>
            The symbol description
            </summary>			
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.SymbolTemplate.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree">
            <summary>
            Internal class encapsulating a layer item representing the virtual root item for the legend tree.
            The LayerItems collection of this item is the collection of map layer item displayed at the first level of the TOC.
            This class manages the events coming from the map, from the map layers and from the map layer items.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree._legendItemTemplate">
            <summary>
            Gets or sets the legend item template.
            </summary>
            <value>The legend item template.</value>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.Refresh">
            <summary>
            Refreshes the legend control.
            </summary>
            <remarks>Note : In most cases, the control is always up to date without calling the refresh method.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.LayerTemplate">
            <summary>
            Gets or sets the layer template i.e. the template used to display a layer in the legend.
            </summary>
            <value>The layer template.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.MapLayerTemplate">
            <summary>
            Gets or sets the map layer template.
            </summary>
            <value>The map layer template.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.Map">
            <summary>
            Gets or sets the map that the legend control is buddied to.
            </summary>
            <value>The map.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.LayerIDs">
            <summary>
            Gets or sets the layer IDs of the layers participating in the legend.
            </summary>
            <remarks>
            Specified in XAML and in Blend as a comma-delimited string: If a layer 
            name contains a comma, please use &#44; instead of the comma.
            If null/empty, legend from all layers is generated. Order of 
            the layer ids is respected in generating the legend.
            </remarks>
            <value>The layer IDs.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.ShowOnlyVisibleLayers">
            <summary>
            Gets or sets a value indicating whether only the visible layers are participating to the legend.
            </summary>
            <value>
            	<c>true</c> if only the visible layers are participating to the legend; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Primitives.LegendTree.Refreshed">
            <summary>
            Occurs when the legend is refreshed. 
            Give the opportunity for an application to add or remove legend items.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Navigation">
            <summary>
            Navigation control supporting pan, zoom and rotation.
            </summary>
            <remarks>
            	<para>The Navigation control contains a slider to zoom in and out, 
            	interactive elements in a ring to rotate the map, and a a set of buttons 
            	to zoom, pan, zoom to full extent, and reset rotation. The behavior 
            	of the Navigation control at runtime depends on the content and 
            	properties of the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Navigation.Map"/> control to which it is bound.</para>
            	<para>The zoom in\out buttons will zoom using the <see cref="P:Map.ZoomFactor"/>.
            	The zoom factor must be greater than 1 for the zoom in\out buttons to 
            	function properly.</para>
            	<para>The zoom slider will only be displayed if the <see cref="P:Map.MinimumResolution"/> 
            	and <see cref="P:Map.MaximumResolution"/> resolution on the Map control 
            	have been defined. If a <see cref="T:ESRI.ArcGIS.Client.TiledMapServiceLayer"/> is present 
            	in the Map's layer collection, in most cases the minimum and maximum 
            	resolution will be set for you. If a Map only contains <see cref="T:ESRI.ArcGIS.Client.DynamicLayer"/>,
                you must set the minimum and maximum resolution explicitly. If 
                <see cref="P:Map.SnapToLevels"/> is true and the Map contains a tiled 
                map layer, the Map will zoom in\out only when the zoom slider bar 
                represents a resolution closer to a different level of detail. This 
                means small changes in the location of the slider bar may not cause 
                the Map to zoom in\out. If <see cref="P:Map.SnapToLevels"/> is false 
                (the default) any change to the slider bar will cause the Map to zoom
                in\out.</para>
            </remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Navigation"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Navigation"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code or
            internal processes (such as a rebuilding layout pass) call
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.OnMouseLeave(System.Windows.Input.MouseEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.MouseLeave"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.OnMouseEnter(System.Windows.Input.MouseEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.MouseEnter"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.ValueToResolution(System.Double)">
            <summary>
            Maps the slider values 0..1 to the map's resolution.
            </summary>
            <param name="value">The value.</param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.ResolutionToValue(System.Double)">
            <summary>
            Maps the map's resolution to a logirithmic scale between 
            0 and 1 which is used on the slider.
            </summary>
            <param name="resolution">The resolution.</param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Navigation.SetupZoom">
            <summary>
            Sets up the parameters of the ZoomSlider
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Navigation.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Navigation.Map"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Navigation.Map">
            <summary>
            Gets or sets the map that the scale bar is buddied to.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Navigation.PanFactor">
            <summary>
             Factor used in panning map. The factor is used as a portion of current width and height of map extent. Default is 0.5.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueSource">
            <summary>
            The CodedValueSource class.
            </summary>
            <remarks>Used to populate each entry in the coded value domain.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueSource.Code">
            <summary>
            Gets or sets the code.
            </summary>
            <value>The code.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueSource.Name">
            <summary>
            Gets or sets the name.
            </summary>
            <value>The name.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueSources">
            <summary>
            The CodedValueSources class.
            </summary>
            <remarks>Used to maintain collection of coded value domains.</remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueSources.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueSources"/> class.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueDomainConverter">
            <summary>
            The CodedValueDomainConverter class.
            </summary>
            <remarks>Converts codes/values in the given coded value domain.</remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueDomainConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the source data before passing it to the target for display in the UI.
            </summary>
            <param name="value">The source data being passed to the target.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the target dependency property.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the target dependency property.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.CodedValueDomainConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the target data before passing it to the source object.  This method is called only in <see cref="F:System.Windows.Data.BindingMode.TwoWay"/> bindings.
            </summary>
            <param name="value">The target data being passed to the source.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the source object.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the source object.
            </returns>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator">
            <summary>
            The RangeDomainValidator class.
            </summary>
            <remarks>Used by property setters of the fields having range domain information.</remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Byte})">
            <summary>
            Determines whether the nullable byte value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Byte)">
            <summary>
            Determines whether the byte value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Int16})">
            <summary>
            Determines whether the nullable short integer value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Int16)">
            <summary>
            Determines whether the short integer value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Int32})">
            <summary>
            Determines whether the nullable integer value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Int32)">
            <summary>
            Determines whether the integer value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Int64})">
            <summary>
            Determines whether the nullable long integer value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Int64)">
            <summary>
            Determines whether the long integer value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Single})">
            <summary>
            Determines whether the nullable single value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Single)">
            <summary>
            Determines whether the single value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Decimal})">
            <summary>
            Determines whether the nullable decimal value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Decimal)">
            <summary>
            Determines whether the decimal value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Nullable{System.Double})">
            <summary>
            Determines whether the nullable double value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.IsInValidRange(System.Double)">
            <summary>
            Determines whether the double value is in valid range.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.minValue">
            <summary>
            Gets or sets the min value of the range domain.
            </summary>
            <value>The min value.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Utilities.RangeDomainValidator.maxValue">
            <summary>
            Gets or sets the max valueof the range domain.
            </summary>
            <value>The max value.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Utilities.DateTimeConverter">
            <summary>
            The DateTimeConverter class
            </summary>
            <remarks>Used to show date data types with short date string format.</remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.DateTimeConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the source data before passing it to the target for display in the UI.
            </summary>
            <param name="value">The source data being passed to the target.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the target dependency property.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the target dependency property.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.DateTimeConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the target data before passing it to the source object.  This method is called only in <see cref="F:System.Windows.Data.BindingMode.TwoWay"/> bindings.
            </summary>
            <param name="value">The target data being passed to the source.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the source object.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the source object.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Utilities.FieldDomainUtils.SetFieldInfo(ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo,System.Collections.Generic.Dictionary{System.String,System.Object[]}@,System.Collections.Generic.Dictionary{System.String,ESRI.ArcGIS.Client.Field}@)">
            <summary>
            Sets the field information in the feature layer.
            </summary>
            <param name="featureLayerInfo">The feature layer info.</param>
            <param name="rangeDomainInfo">The range domain info.</param>
            <param name="fieldProps">The properties associated with the field.</param>
            <returns>Dictionary of field types keyed by their actual names. Also, populates range domain information and field properties if any.</returns>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItemCollection">
            <summary>
            An observable <seealso cref="T:System.Collections.ObjectModel.ObservableCollection`1"/> Collection of Toolbaritems
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItem">
            <summary>
            The item used to represent a toolbar component
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.TextProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.Text"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.ContentProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.Content"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.TagProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.Tag"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.Text">
            <summary>
            Gets or sets the text.
            </summary>
            <value>The text.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.Content">
            <summary>
            Gets or sets the content.
            </summary>
            <value>The content.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ToolbarItem.Tag">
            <summary>
            Gets or sets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar">
            <summary>
            TickBar control used for placing a specified amount of tick marks evenly spread out.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.ArrangeOverride(System.Windows.Size)">
            <summary>
            Provides the behavior for the Arrange pass of Silverlight layout.
            Classes can override this method to define their own Arrange pass behavior.
            </summary>
            <param name="finalSize">The final area within the parent that this
            object should use to arrange itself and its children.</param>
            <returns>
            The actual size used once the element is arranged.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.MeasureOverride(System.Windows.Size)">
            <summary>
            Provides the behavior for the Measure pass of Silverlight layout. 
            Classes can override this method to define their own Measure pass behavior.
            </summary>
            <param name="availableSize">The available size that this object
            can give to child objects. Infinity can be specified as a value
            to indicate that the object will size to whatever content is available.</param>
            <returns>
            The size that this object determines it needs during layout,
            based on its calculations of child object allotted sizes.
            </returns>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.TickMarkPositionsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.TickMarkPositions"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.TickMarkTemplateProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.TickMarkTemplate"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.OrientationProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.Orientation"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.TickMarkPositions">
            <summary>
            Gets or sets the tick mark positions.
            </summary>
            <value>The tick mark positions.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.TickMarkTemplate">
            <summary>
            Gets or sets the item template for each tick mark.
            </summary>
            <value>The item template.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TickBar.Orientation">
            <summary>
            Gets or sets the orientation.
            </summary>
            <value>The orientation.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel">
            <summary>
            Lays out templates in a grid whose one dimension is specified.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel"/> control.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.ItemTemplateProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.ItemTemplate"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.TemplatesProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.Templates"/> dependency property
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirectionProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirection"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCountProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.OnApplyTemplate">
            <summary>
            Overrides apply template
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.ItemTemplate">
            <summary>
            Gets or sets the data template for TemplatePanel
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.Templates">
            <summary>
            The templates to be displayed in the template panel.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirection">
            <summary>
            Gets or sets the StackDirection.
            When <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirection"/> is Horizontal, the number of rows equals the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/>.  
            When <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirection"/> is Vertical, the number of columns equals the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/>.
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/> has to be 1 or more.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount">
            <summary>
            Gets or sets the number of stacks.
            When <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirection"/> is Horizontal, the number of rows equals the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/>.  
            When <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackDirection"/> is Vertical, the number of columns equals the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/>.
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.TemplatePanel.StackCount"/> has to be 1 or more.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ScaleLine">
             <summary>The ScaleLine Control generates a line representing a certain distance on the map in both Metric and US units.
             </summary>
             <remarks>
             	<para>
             		<strong>
             			<u>Setting the MapUnit Property:</u>
             		</strong>
             	</para>
             	<para>
             	For the ScaleLine to function correctly, it is possible to set the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapUnit"></see> to 
             	whatever unit the Map's <see cref="T:ESRI.ArcGIS.Client.Geometry.SpatialReference">SpatialReference</see> is using. 
             	For example: if the Map's SpatialReference is based on a Geographic coordinate system use DecimalDegrees 
             	(aka. Longitude/Latitude) units; if it is a UTM or WebMercator (SRID=102100) projection use Meters.
             	</para>
             	<para>
             	When the Map is using Geographic units (ie. DecimalDegrees) or WebMercator projection, the approximate scale will be calculated at the 
             	center of the map. If any other units are used, a direct conversion between MapUnit's and Metric/US units 
             	is used and scale distortion is not taken into account.
             	</para>
             	<para>
             		<strong>
             			<u>Default MapUnit:</u>
             		</strong>
             	</para>
             	<para>
             	If the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapUnit"></see> is  not set manually, the scale line control will use a default map unit which is calculated from the spatial reference of the map
             	or from the <see cref="P:ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer.Units"></see> of the layers inside the map.
            		If the spatial reference is Geographic WGS84 (SRID=4326) or WebMercator (SRID=102100), the default MapUnit will be DecimalDegrees and Meters respectively.
            		For others spatial references, the scale line will look at the Units property of the layers having the same spatial reference than the map.
            		If no layers are found, the default DecimalDegrees will be used.
             	</para>
                 <para>
             		<strong>
             			<u>Controling the text on the ScaleLine:</u>
             		</strong>
                 </para>
                 <para>
                 It is not possibly to directly control the values of the text on the ScaleLine as a Property that can be set. The 
                 text as part of the ScaleLine that displays is automatically adjusted as the scale of the map changes when the 
                 ScaleLine is bound to a Map Control. This also means that it is not possible to control the scale (ie. zoom level) 
                 of the Map Control via a Property of the ScaleLine Control.
                 </para>
                 <para>
             		<strong>
             			<u>ScaleBar style</u>
             		</strong>
                 </para>
                 <para>
                 The ScaleLine control is replacing the ScaleBar control which is now deprecated.
                 Nevertheless it's possible to template the ScaleLine control in order to get a look close of the old ScaleBar.
                 Below there is a sample of a scaleline style allowing to get a scale bar with metric units.
                 </para>
             </remarks>
             <example>
             	<code title="Example XAML1" description="" lang="XAML">
             	&lt;esri:ScaleLine Name="ScaleLine1" Map="{Binding ElementName=Map1}"
                   HorizontalAlignment="Left" VerticalAlignment="Top"  
                   TargetWidth="400" 
                   Foreground="Black" FontFamily="Courier New" FontSize="18" /&gt;
                 </code>
                 
             	<code title="Example CS1" description="" lang="CS">
                 //Create a new ScaleLine Control and add it to the LayoutRoot (a Grid in the XAML)
                 ESRI.ArcGIS.Client.Toolkit.ScaleLine ScaleLine1 = new ESRI.ArcGIS.Client.Toolkit.ScaleLine();
                 LayoutRoot.Children.Add(ScaleLine1);
             
                 //Associate the ScaleLine with Map Control (analagous to a OneTime Binding). Most common coding pattern.
                 ScaleLine1.Map = Map1;
             
                 //Alternative Binding Method. Useful if the ScaleLine's Properties will dynamically impact other objects.
                 //System.Windows.Data.Binding myBinding = new System.Windows.Data.Binding();
                 //myBinding.ElementName = "Map1";
                 //ScaleLine1.SetBinding(ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapProperty, myBinding);
            
                 //Set the alignment properties relative the hosting Grid Control
                 ScaleLine1.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                 ScaleLine1.VerticalAlignment = System.Windows.VerticalAlignment.Top;
             
                 //Set the Map units for the ScaleLine
                 ScaleLine1.MapUnit = ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.DecimalDegrees;
             
                 //Set the target width for the ScaleLine
                 ScaleLine1.TargetWidth = 400;
             
                 //Set ScaleLine color and related Font information
                 System.Windows.Media.Color myScaleLineColor = Color.FromArgb(255, 0, 0, 0);
                 ScaleLine1.Foreground = new System.Windows.Media.SolidColorBrush(myScaleLineColor);
                 ScaleLine1.FontFamily = new FontFamily("Courier New");
                 ScaleLine1.FontSize = 18;
                 </code>
                 
             	<code title="Example VB1" description="" lang="VB.NET">
             	'Create a new ScaleLine Control and add it to the LayoutRoot (a Grid in the XAML)
                 Dim ScaleLine1 As New ESRI.ArcGIS.Client.Toolkit.ScaleLine
                 LayoutRoot.Children.Add(ScaleLine1)
             
                 'Associate the ScaleLine with Map Control (analagous to a OneTime Binding). Most common coding pattern.
                 ScaleLine1.Map = Map1
             
                 'Alternative Binding Method. Useful if the ScaleLine's Properties will dynamically impact other objects.
                 'Dim myBinding As System.Windows.Data.Binding = New System.Windows.Data.Binding()
                 'myBinding.ElementName = "Map1"
                 'ScaleLine1.SetBinding(ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapProperty, myBinding)
            
                 'Set the alignment properties relative the hosting Grid Control
                 ScaleLine1.HorizontalAlignment = Windows.HorizontalAlignment.Left
                 ScaleLine1.VerticalAlignment = Windows.VerticalAlignment.Top
             
                 'Set the Map units for the ScaleLine
                 ScaleLine1.MapUnit = ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.DecimalDegrees
             
                 'Set the target width for the ScaleLine
                 ScaleLine1.TargetWidth = 400
             
                 'Set ScaleLine color and related Font information
                 Dim myScaleLineColor As System.Windows.Media.Color = Color.FromArgb(255, 0, 0, 0)
                 ScaleLine1.Foreground = New System.Windows.Media.SolidColorBrush(myScaleLineColor)
                 ScaleLine1.FontFamily = New FontFamily("Courier New")
                 ScaleLine1.FontSize = 18
                 </code>
             
                 <code title="ScaleBar style" description="" lang="XAML">
                 &lt;Style x:Key="ScaleBarStyle" TargetType="esri:ScaleLine"&gt;
                     &lt;Setter Property="Background" Value="White" /&gt;
                     &lt;Setter Property="TargetWidth" Value="150.0" /&gt;
                     &lt;Setter Property="FontSize" Value="10.0" /&gt;
                     &lt;Setter Property="Foreground" Value="Black" /&gt;
                     &lt;Setter Property="Template"&gt;
                         &lt;Setter.Value&gt;
                             &lt;ControlTemplate TargetType="esri:ScaleLine"&gt;
                                 &lt;StackPanel Name="LayoutRoot" Orientation="Horizontal"&gt;
                                     &lt;Grid VerticalAlignment="Center" Height="10" Width="{Binding MetricSize, RelativeSource={RelativeSource TemplatedParent}}"&gt;
                                         &lt;Grid.ColumnDefinitions&gt;
                                             &lt;ColumnDefinition Width="1*" /&gt;
                                             &lt;ColumnDefinition Width="1*" /&gt;
                                             &lt;ColumnDefinition Width="1*" /&gt;
                                             &lt;ColumnDefinition Width="2*" /&gt;
                                             &lt;ColumnDefinition Width="5*" /&gt;
                                         &lt;/Grid.ColumnDefinitions&gt;
                                         &lt;Grid.RowDefinitions&gt;
                                             &lt;RowDefinition Height="1*" /&gt;
                                             &lt;RowDefinition Height="1*" /&gt;
                                         &lt;/Grid.RowDefinitions&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Foreground}" Grid.Row="0" Grid.Column="0" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Background}" Grid.Row="0" Grid.Column="1" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Foreground}" Grid.Row="0" Grid.Column="2" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Background}" Grid.Row="0" Grid.Column="3" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Foreground}" Grid.Row="0" Grid.Column="4" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Background}" Grid.Row="1" Grid.Column="0" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Foreground}" Grid.Row="1" Grid.Column="1" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Background}" Grid.Row="1" Grid.Column="2" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Foreground}" Grid.Row="1" Grid.Column="3" /&gt;
                                         &lt;Rectangle Fill="{TemplateBinding Background}" Grid.Row="1" Grid.Column="4" /&gt;
                                     &lt;/Grid&gt;
                                     &lt;TextBlock Text="{Binding MetricValue, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" Margin="2,0"/&gt;
                                     &lt;TextBlock Text="{Binding MetricUnit, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" /&gt;
                                 &lt;/StackPanel&gt;
                             &lt;/ControlTemplate&gt;
                         &lt;/Setter.Value&gt;
                     &lt;/Setter&gt;
                 &lt;/Style&gt;
                 </code>
             </example>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.ScaleLine"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.ScaleLine"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application
            code or internal processes (such as a rebuilding layout pass) call 
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>. In
            simplest terms, this means the method is called just before a UI
            element displays in an application.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.SetDesignValues">
            <summary>
            Sets the design values.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapProperty">
            <summary>
            Identifies the Map dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.TargetWidthProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.TargetWidth"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapUnitProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapUnit"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.map_ExtentChanged(System.Object,ESRI.ArcGIS.Client.ExtentEventArgs)">
            <summary>
            Handles the ExtentChanged and ExtentChanging event of the map control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="args">The <see cref="T:ESRI.ArcGIS.Client.ExtentEventArgs"/> 
            instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.RefreshScaleline">
            <summary>
            Refreshes the scaleline when the map extent changes.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.RoundToSignificant(System.Double,System.Double)">
            <summary>
            Rounds to a value to the significant number of digits.
            </summary>
            <param name="value">The value.</param>
            <param name="resolution">The resolution.</param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.GetResolutionForGeographic(ESRI.ArcGIS.Client.Geometry.MapPoint,System.Double)">
            <summary>
            Calculates horizontal scale at center of extent
            for geographic / Plate Carrée projection.
            Horizontal scale is 0 at the poles.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ScaleLine.InitializeMapUnit">
            <summary>
            Try to initialize the map units
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.Map">
            <summary>
            Gets or sets the map that the scale line is buddied to.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.TargetWidth">
            <summary>
            Gets or sets the target width of the scale line.
            </summary>
            <remarks>The actual width of the scale line changes when values are rounded.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MapUnit">
            <summary>
            Gets or sets the map unit.
            </summary>
            <remarks>
            	If the MapUnit is  not set manually, the scale line control will use a default map unit which is calculated from the spatial reference of the map
            	or from the <see cref="P:ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer.Units"></see> of the layers inside the map.
            </remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.USValue">
            <summary>
            The size of the scale line in US Units (Miles or Feet).
            <remarks>This is a rounded value.</remarks>
            </summary>
            <value>The size of the scale line in US units.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.USUnit">
            <summary>
            The US unit (Miles or Feet).
            </summary>
            <value>The US unit.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.USSize">
            <summary>
            The size of the US scale line in Silverlight/WPF coordinates.
            </summary>
            <value>The size of the US scale line.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MetricValue">
            <summary>
            The size of the scale line in metric units (Kilometers or Meters).
            <remarks>This is a rounded value.</remarks>
            </summary>
            <value>The size of the scale line in metric units.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MetricUnit">
            <summary>
            The metric unit (Kilometers or Meters).
            </summary>
            <value>The metric unit.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ScaleLine.MetricSize">
            <summary>
            The size of the metric scale line in Silverlight/WPF coordinates.
            </summary>
            <value>The size of the metric scale line.</value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.ScaleLine.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit">
            <summary>
            Unit used by the scale line control
            </summary>
            <remarks>The integer value of the enums corresponds to 1/10th of a millimeter</remarks>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Undefined">
            <summary>
            Undefined
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.DecimalDegrees">
            <summary>
            Decimal degrees
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Inches">
            <summary>
            Inches
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Feet">
            <summary>
            Feet
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Yards">
            <summary>
            Yards
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Miles">
            <summary>
            Miles
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.NauticalMiles">
            <summary>
            Nautical Miles
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Millimeters">
            <summary>
            Millimeters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Centimeters">
            <summary>
            Centimeters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Decimeters">
            <summary>
            Decimeters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Meters">
            <summary>
            Meters
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.ScaleLine.ScaleLineUnit.Kilometers">
            <summary>
            Kilometers
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Attribution">
            <summary>
            The Attribution Control displays Copyright information for Layers that have the IAttribution 
            Interface implemented.
            </summary>
            <remarks>
            <para>
            The Attribution Control is a User Interface (UI) control that displays <b>Copyright</b> information 
            in a list of Microsoft 
            <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.contentpresenter(v=VS.95).aspx" target="_blank">ContentPresenter</a> 
            Controls for each <see cref="T:ESRI.ArcGIS.Client.Layer">Layer</see> in a 
            <see cref="T:ESRI.ArcGIS.Client.LayerCollection">LayerCollection</see> that has the IAttribution Interface
            implemented. Layers that have the IAttribution Interface implemented have an additional 
            <b>.AttributionTemplate</b> Property which returns a 
            <a href="http://msdn.microsoft.com/en-us/library/ms589297(v=VS.95).aspx" target="_blank">DataTemplate</a>
            that allows for the display of the <b>Copyright</b> information in the ContentPresenter. As of version 2.2
            of the API, the <b>Copyright</b> information is returned as <b>CopyrightText</b> strings for the various
            Layers that implement the IAttribution interface.
            </para>
            <para>
            The Attribution Control can be created in at design-time in XAML or dynamically at run-time in the 
            code-behind. The Attribution Control is one of several controls available in the Toolbox for Visual 
            Studio when the ESRI ArcGIS API for Silverlight/WPF is installed, see the following screen 
            shot:
            </para>
            <para>
            <img border="0" alt="Example of the Attribution Control on the XAML design surface of a Silverlight application." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution.png"/>
            </para>
            <para>
            The default appearance of the Attribution Control can be modified using numerous inherited Properties 
            from System.Windows.FrameworkElement, System.Windows.UIElement, and System.Windows.Controls. An example 
            of some of these Properties include: .Height, .Width, .BackGround, .BorderBrush, .BorderThickness, 
            .FontFamily, .FontSize, .FontStretch, .FontStyle, .Foreground, .HorizontalAlignment, .VerticalAlignment, 
            .Margin, .Opacity, .Visibility, etc. 
            </para>
            <para>
            Note: you cannot change the core behavior of the sub-components (i.e. ContentPresenter, etc.) of the 
            Attribution Control using standard Properties or Methods alone. To change the core behavior of the 
            sub-components and their appearance of the Control, developers can modify the Control Template in 
            XAML and the associated code-behind file. The easiest way to modify the UI sub-components is using 
            Microsoft Expression Blend. Then developers can delete/modify existing or add new sub-components in 
            Visual Studio to create a truly customized experience. A general approach to customizing a Control 
            Template is discussed in the ESRI blog entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>. 
            A specific code example of modifying the Control Template of the Attribution Control can be found 
            in the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers">Attribution.Layers</see> documentation.
            </para>
            <para>
            The Attribution Control is comprised of mainly one sub-component, a ContentPresenter, that displays 
            <b>Copyright</b> information for each Layer that has the IAttribution Interface implemented. The 
            implied Binding that occurs in the ControlTemplate Style of the Attribution Control to the 
            ContentPresenter sub-component is to the 
            <see cref="T:ESRI.ArcGIS.Client.IAttribution">ESRI.ArcGIS.Client.IAttribution</see> Interface members. 
            The IAttribution Interface adds functionality to Layer objects. These special Layer Types have an 
            <b>.AttributionTemplate</b> Property. The <b>.AttributionTemplate</b> Property is the internal mechanism 
            for constructing the IAttribution object. Only those Layers which have a <b>.AttributionTemplate</b> 
            Property will get listed in the ObservabaleCollection(Of IAttribution) as a result of using the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Items">Attribution.Items</see> Property. The 
            following Layers are those that implement the IAttribution Interface and have an 
            <b>.AttributionTemplate</b> Property: 
            </para>
            <para>
            <list type="bullet">
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer">ArcGISDynamicMapServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISImageServiceLayer">ArcGISImageServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer">ArcGISTiledMapServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.FeatureLayer">FeatureLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.Bing.TileLayer">TileLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.Toolkit.DataSources.OpenStreetMapLayer">OpenStreetMapLayer</see></item>
            </list>
            </para>
            <para>
            <b>Note:</b> This also means that you can also use implied Binding in the ControlTemplate Style of the 
            Attribution Control for the various Properties of the special Types of Layers such as: .ID, .Url, 
            .Version, etc. 
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Items">Attribution.Items</see> Property returns 
            a Read only ObservableCollection(Of IAttribution) object. While it is true that you can use the various 
            <a href="http://msdn.microsoft.com/en-us/library/ms668604(v=VS.95).aspx" target="_blank">ObservableCollection</a> 
            Propeties such as .Add, .Clear, .Remove, etc. to manipulate the contents of what is in the 
            ObservableCollection it is not recommended. The 
            <see cref="E:ESRI.ArcGIS.Client.Toolkit.Attribution.PropertyChanged">Attribution.PropertyChanged</see> 
            and <see cref="E:ESRI.ArcGIS.Client.Toolkit.Attribution.Refreshed">Attribution.Refreshed</see> Events do 
            not fire as a result of adding/removing items in the ObservableCollection. Additionally, the Map Control does 
            not update by adding/removing items in the ObservableCollection. The correct programming practice to 
            see automatic updates to the Attributon.Items Collection is to add Layers to the Map Control which is 
            bound to the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers">Attribution.Layers</see>. When 
            Binding the Map.Layers to the Attribution.Layers is done any .Add, .Remove, or change to the 
            LayerCollection will result in update to Attribution.Items.
            </para>
            <para>
            Both the Attribution.PropertyChanged and Attribution.Refreshed Events fire as a result of the Layers 
            that Implement IAttribution in the LayerCollection being added or removed in the Attribution.Layers 
            Property. Use the Attribution.Refreshed Event if you want to add, delete, or modify the default 
            attribution items given by the framework. Use the Attribution.PropertyChanged Event on property 
            Attribution.Items, if you want to be aware of this change in order to hook up an Event fired by 
            Attribution.Items. <b>Note:</b> The various special Layer types that Implement the IAttribution 
            Interface have <b>Copyright</b> information Properties that are ReadOnly (meaning they can't be changed 
            by the client application) and hence it is impossible force the Attribution.PropertyChanged and 
            Attribution.Refreshed Events to update as a result of trying to modify the <b>Copyright</b> 
            information on the client side. 
            </para>
            <para>
            In order to use the Attribution Control it is mandatory that the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers">Attribution.Layers</see> Property be set to 
            a valid <see cref="T:ESRI.ArcGIS.Client.LayerCollection">LayerCollection</see>. This can be done via 
            Binding in the XAML or by setting the Attribution.Layers Property in the code-behind file. Typically, 
            the LayerCollection object is obtained from the <see cref="P:ESRI.ArcGIS.Client.Map.Layers">Layers</see> 
            Property on the Map Control. 
            </para>
            <para>
            In the following XAML example, Binding is used to associate a Map Control named 'Map1' with it’s 
            LayerCollection to the Attribution Control’s Layers Property:<br/>
            <code lang="XAML">
            &lt;esri:Attribution Name="Attribution1" Layers="{Binding ElementName=Map1,Path=Layers}" /&gt;
            </code>
            </para>
            <para>
            The default visual appearance of the Attribution Control is minimal when using drag-and-drop to place 
            the control on the design surface of a XAML page in Visual Studio; there are graphical selection handles 
            but nothing else to denote the visual appearance of the control. At design-time, it is not until the 
            Attribution.Layers Property is specified that placeholder text values will be populated in the control. 
            At design-time, if no <b>ID</b> value is specified for the Layer the placeholder information displayed 
            in the list of ContentPresenter sub-controls will be of the form: "<b>&lt;Type of Layer&gt; attribution.</b>". 
            Conversely, if there is an <b>ID</b> value specified for the Layer the placeholder information displayed 
            in the list of ContentPresenter sub-controls will be of the form: "<b>&lt;Layer ID&gt; attribution.</b>". See 
            the following screen shot to see how the design-time placeholder text appears in the Attribution Control 
            for the associated XAML:
            </para>
            <para>
            <img border="0" alt="Example of the visual appearance of the Attribution Control at design-time when the Attribution.Layers Property is bound to the Map.Layers Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution2.png"/>
            </para>
            <para>
            <b>NOTE:</b> It is not until run-time that the actual <b>Copyright</b> information about a Layer 
            will replace the placeholder text that is shown in the Attribution Control defined at design-time. 
            The following image shows the run-time display of the Map Control and the Attribution Control that 
            corresponds to the previous design-time screen shot where the actual <b>Copyright</b> information 
            about the Layers is displayed.
            </para>
            <para>
            <img border="0" alt="Example of the visual appearance of the Attribution Control at run-time when the Attribution.Layers Property is bound to the Map.Layers Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution2a.png"/>
            </para>
            <para>
            <b>Note:</b> Setting the Layer.ID Property is typically done in XAML or in code-behind. The Layer.ID is 
            usually not populated in the map service.
            </para>
            <para>
            If length of the <b>Copyright</b> information string for a Layer exceeds the Attribution Controls Width, 
            the text will wrap across multiple lines to avoid truncation. 
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            By default two Layers have been added to the Map Control and the <b>Copyright</b> information for those 
            Layers are displayed in the Attribution Control. Click the 'Add Layer Dynamically' button to add 
            another Layer to the Map and see the newly added <b>Copyright</b> information added to the Attribution 
            Control.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Visual example of the Attribution Control displaying CopyrightText information about various layers." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution3.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="65" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                         TextWrapping="Wrap" Margin="2,2,0,0" 
                         Text="By default two Layers have been added to the Map Control and the Copyright information
                         for those Layers are displayed in the Attribution Control. Click the 'Add Layer Dynamically' 
                         button to add another Layer to the Map and see the newly added Copyright information
                         added to the Attribution Control." /&gt;
              
              &lt;!-- Add a Map Control zoomed to a specific Extent. --&gt;  
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,102,0,0" Name="Map1" 
                        VerticalAlignment="Top" Height="306" Width="545" 
                        Extent="-10723833,4627392,-10704398,4644168"&gt;
              
                &lt;!-- 
                Add an ArcGISTiledMapServiceLayer. Note: No ID value was specified and hence the Layer can not
                be accessed via code-behind. Also, since no ID value was specified the design-time will list the
                Type of Layer in Attribution Control placeholder (Ex: ArcGISTiledMapServiceLayer attribution.).
                --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer  
                      Url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/&gt;
                
                &lt;!-- 
                Add an ArcGISDynamicMapServiceLayer. Note: since an ID value is specified the design-time will 
                list the Layer ID in Attribution Control placeholder (Ex: World Transportation attribution.).
                --&gt;
                &lt;esri:ArcGISDynamicMapServiceLayer ID="World Transportation"
                      Url="http://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer" /&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add an Attribution Control and Bind the Map.Layers to the Attribution.Layers. Change a few
              visual appearance settings related to the Font for the text that is displayed in the Control. 
              --&gt;
              &lt;esri:Attribution HorizontalAlignment="Left" Margin="12,420,0,0" Name="Attribution1" 
                                VerticalAlignment="Top" Layers="{Binding ElementName=Map1,Path=Layers}" 
                                Width="545" Height="48" 
                                FontSize="11" FontFamily="Arial" Foreground="Chocolate"/&gt;
                 
              &lt;!-- 
              Add a button to dynamically add a Layer to the Map which will also automatically update what is in
              the Attribution Control. Note the Click event handler is wired up to use code-behind. 
              --&gt;
              &lt;Button Content="Add Layer Dynamically" Height="23" HorizontalAlignment="Left" Margin="12,73,0,0" 
                      Name="AddLayerDynamically" VerticalAlignment="Top" Width="545" Click="AddLayerDynamically_Click"/&gt;
              
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void AddLayerDynamically_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function dynamically (i.e. at run-time) adds a FeatureLayer to the Map Control. As a result the 
              // Attribution Control will also be updated with the CopyrightText information available on the Layer.
              
              // Create a new FeatureLayer and set a few Properties. 
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = new ESRI.ArcGIS.Client.FeatureLayer();
              myFeatureLayer.Url = "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Hydrography/Watershed173811/FeatureServer/1";
              myFeatureLayer.DisableClientCaching = true;
              myFeatureLayer.Mode = ESRI.ArcGIS.Client.FeatureLayer.QueryMode.OnDemand;
              
              // Add the FeatureLayer to the Map Control.
              Map1.Layers.Add(myFeatureLayer);
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub AddLayerDynamically_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function dynamically (i.e. at run-time) adds a FeatureLayer to the Map Control. As a result the 
              ' Attribution Control will also be updated with the CopyrightText information available on the Layer.
              
              ' Create a new FeatureLayer and set a few Properties. 
              Dim myFeatureLayer As New ESRI.ArcGIS.Client.FeatureLayer
              myFeatureLayer.Url = "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Hydrography/Watershed173811/FeatureServer/1"
              myFeatureLayer.DisableClientCaching = True
              myFeatureLayer.Mode = ESRI.ArcGIS.Client.FeatureLayer.QueryMode.OnDemand
              
              ' Add the FeatureLayer to the Map Control.
              Map1.Layers.Add(myFeatureLayer)
              
            End Sub
            </code>
            </example>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Attribution.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Attribution"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Attribution.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Attribution"/> control.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Attribution.LayersProperty">
            /// <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Attribution.UpdateAttributionItems">
            <summary>
            Updates the attribution items with the layers implementing IAttribution and returning non null AttributionTemplate.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers">
            <summary>
            Gets or sets the LayerCollection that the Attribution Control is buddied to.
            </summary>
            <remarks>
            <para>
            In order to use the Attribution Control it is mandatory that the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers">Attribution.Layers</see> Property be set 
            to a valid <see cref="T:ESRI.ArcGIS.Client.LayerCollection">LayerCollection</see>. This can be done 
            via Binding in the XAML or by setting the Attribution.Layers Property in the code-behind file. 
            Typically, the LayerCollection object is obtained from the 
            <see cref="P:ESRI.ArcGIS.Client.Map.Layers">Layers</see> Property on the Map Control. 
            </para>
            <para>
            In the following XAML example, Binding is used to associate a Map Control named 'Map1' with it’s 
            LayerCollection to the Attribution Control’s Layers Property:<br/>
            <code lang="XAML">
            &lt;esri:Attribution Name="Attribution1" Layers="{Binding ElementName=Map1,Path=Layers}" /&gt;
            </code>
            </para>
            <para>
            The default visual appearance of the Attribution Control is minimal when using drag-and-drop to place 
            the control on the design surface of a XAML page in Visual Studio; there are graphical selection 
            handles but nothing else to denote the visual appearance of the control. At design-time, it is not 
            until the Attribution.Layers Property is specified that placeholder text values will be populated in 
            the control. At design-time, if no <b>ID</b> value is specified for the Layer the placeholder 
            information displayed in the list of ContentPresenter sub-controls will be of the form: 
            "<b>&lt;Type of Layer&gt; attribution.</b>". Conversely, if there is an <b>ID</b> value specified for the 
            Layer the placeholder information displayed in the list of ContentPresenter sub-controls will be of 
            the form: "<b>&lt;Layer ID&gt; attribution.</b>". See the following screen shot to see how the design-time 
            placeholder text appears in the Attribution Control for the associated XAML:
            </para>
            <para>
            <img border="0" alt="Example of the visual appearance of the Attribution Control at design-time when the Attribution.Layers Property is bound to the Map.Layers Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution2.png"/>
            </para>
            <para>
            <b>NOTE:</b> It is not until run-time that the actual <b>Copyright</b> information about a Layer 
            will replace the placeholder text that is shown in the Attribution Control defined at design-time. 
            The following image shows the run-time display of the Map Control and the Attribution Control that 
            corresponds to the previous design-time screen shot where the actual <b>Copyright</b> information 
            about the Layers is displayed.
            </para>
            <para>
            <img border="0" alt="Example of the visual appearance of the Attribution Control at run-time when the Attribution.Layers Property is bound to the Map.Layers Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution2a.png"/>
            </para>
            <para>
            <b>Note:</b> Setting the Layer.ID Property is typically done in XAML or in code-behind. The Layer.ID 
            is usually not populated in the map service.
            </para>
            <para>
            When Binding the Map.Layers to the Attribution.Layers is done any .Add, .Remove, or change to the 
            LayerCollection will result in update to Attribution.Items.
            </para>
            <para>
            Only those Layers in the LayerCollection that Implement the 
            <see cref="T:ESRI.ArcGIS.Client.IAttribution">ESRI.ArcGIS.Client.IAttribution</see>. Interface will have 
            <b>Copyright</b> information displayed in the Attribution Control. You can tell if the IAttribution 
            Interface is implemented on the Layer if it has a <b>.AttributionTemplate</b> Property. The 
            following Layers are those that implement the IAttribution Interface and have an 
            <b>.AttributionTemplate</b> Property: 
            </para>
            <para>
            <list type="bullet">
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer">ArcGISDynamicMapServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISImageServiceLayer">ArcGISImageServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer">ArcGISTiledMapServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.FeatureLayer">FeatureLayer</see></item>
            <item><see cref="M:ESRI.ArcGIS.Client.Bing.TileLayer">TileLayer</see></item>
            <item><see cref="M:ESRI.ArcGIS.Client.Toolkit.DataSources.OpenStreetMapLayer">OpenStreetMapLayer</see></item>
            </list>
            </para>
            <para>
            Both the <see cref="E:ESRI.ArcGIS.Client.Toolkit.Attribution.PropertyChanged">Attribution.PropertyChanged</see> 
            and <see cref="E:ESRI.ArcGIS.Client.Toolkit.Attribution.Refreshed">Attribution.Refreshed</see> Events fire 
            as a result of the Layers that Implement IAttribution in the LayerCollection being added or removed in 
            the Attribution.Layers Property. Use the Attribution.Refreshed Event if you want to add, delete, or modify 
            the default attribution items given by the framework. Use the Attribution.PropertyChanged Event on 
            property <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Items">Attribution.Items</see>, if you want to 
            be aware of this change in order to hook up an Event fired by Attribution.Items. <b>Note:</b> The various 
            special Layer types that Implement the IAttribution Interface have <b>Copyright</b> infromation Properties 
            that are ReadOnly (meaning they can't be changed by the client application) and hence it is impossible force 
            the Attribution.PropertyChanged and Attribution.Refreshed Events to update as a result of trying to modify 
            the <b>Copyright</b> information on the client side. 
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            By default two Layers have been added to the Map Control and the Copyright information for those 
            Layers are displayed in the Attribution Control. Click the 'Apply a different ControlTemplate Style 
            to the Attribution Control' button to change the appearance of the text in the Attribution Control; it 
            will have the Layer ID in bold, a dash, and then the Copyright information displayed.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Applying a custom ControlTemplate as the Style of the Attribution Control for the various Attribution.Layers." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution.Layers.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- 
              Use the Resources section to hold a Style for setting the appearance and behavior of the Attribution 
              Control. 
              --&gt;
              &lt;Grid.Resources&gt;
                
                &lt;!--
                The majority of the XAML that defines the ControlTemplate for the Attribution Control was obtained
                by using Microsoft Blend. See the blog post entitled: 'Use control templates to customize the 
                look and feel of ArcGIS controls' at the following Url for general How-To background:
                http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx
                --&gt;
                &lt;Style x:Key="AttributionStyle1" TargetType="esri:Attribution"&gt;
                  &lt;Setter Property="Background" Value="Transparent"/&gt;
                  &lt;Setter Property="BorderBrush" Value="Transparent"/&gt;
                  &lt;Setter Property="BorderThickness" Value="0"/&gt;
                  &lt;Setter Property="IsTabStop" Value="False"/&gt;
                  &lt;Setter Property="IsHitTestVisible" Value="False"/&gt;
                  &lt;Setter Property="Template"&gt;
                    &lt;Setter.Value&gt;
                      &lt;ControlTemplate TargetType="esri:Attribution"&gt;
                        &lt;Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" 
                                Background="{TemplateBinding Background}" CornerRadius="5"&gt;
                          &lt;ItemsControl ItemsSource="{Binding Items, RelativeSource={RelativeSource TemplatedParent}}"&gt;
                            &lt;ItemsControl.ItemTemplate&gt;
                              &lt;DataTemplate&gt;
                                &lt;Grid Margin="3"&gt;
                                  &lt;StackPanel Orientation="Horizontal"&gt;
                                  
                                    &lt;!--
                                    Add a TextBlock to display the Layer ID value in bold along with a dash (-) for a separator.
                                    The StringFormat is used format the Layer ID value. There are several MSDN documents that are
                                    a good reference for creating your own custom formatting using the BindingBase.StringFormat Property:
                                    http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat(v=VS.100).aspx
                                    http://msdn.microsoft.com/en-us/library/26etazsy.aspx
                                    http://msdn.microsoft.com/en-us/library/txafckwd.aspx
                                    http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
                                    http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
                                    http://msdn.microsoft.com/en-us/library/az4se3k1.aspx
                                    http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
                                      
                                    It is imperative that a Layer ID value be specified in XAML for the different Layers that are
                                    added to the Map Control. If no ID value is specified, nothing will be displayed for the Layer
                                    ID in the Attribution Control.
                                    --&gt;
                                    &lt;TextBlock Text="{Binding ID, StringFormat='\{0\} - '}" FontWeight="Bold" 
                                               FontFamily="Arial Black" FontSize="14"/&gt;
                                    
                                    &lt;ContentPresenter ContentTemplate="{Binding AttributionTemplate}" Content="{Binding}" /&gt;
                                  &lt;/StackPanel&gt;
                                &lt;/Grid&gt;
                              &lt;/DataTemplate&gt;
                            &lt;/ItemsControl.ItemTemplate&gt;
                          &lt;/ItemsControl&gt;
                        &lt;/Border&gt;
                      &lt;/ControlTemplate&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                &lt;/Style&gt;
              &lt;/Grid.Resources&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="67" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                         TextWrapping="Wrap" Margin="2,2,0,0" 
                         Text="By default two Layers have been added to the Map Control and the CopyrightText information for those 
                         Layers are displayed in the Attribution Control. Click the 'Apply a different ControlTemplate Style to 
                         the Attribution Control' button to change the appearance of the text in the Attribution Control; it will 
                         have the Layer ID in bold, a dash, and then the CopyrightText information displayed." /&gt;
                  
              &lt;!-- Add a Map Control and zoom to an initial Extent. --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,113,0,0" Name="Map1" 
                        VerticalAlignment="Top" Height="295" Width="600" 
                        Extent="-15022410,2064855,-6201900,7017288" &gt;
                
                &lt;!-- 
                Add an ArcGISTiledMapServiceLayer. Note that and ID value is specified in XAML. The Layer's ID value is not 
                provided by the ArcGIS Server REST map service. 
                --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="US Topography" 
                      Url="http://server.arcgisonline.com/ArcGIS/rest/services/USA_Topo_Maps/MapServer"/&gt;
                  
                &lt;!-- 
                Add an ArcGISDynamicMapServiceLayer. Note that and ID value is specified in XAML. The Layer's ID value is not 
                provided by the ArcGIS Server REST map service. 
                --&gt;
                &lt;esri:ArcGISDynamicMapServiceLayer ID="US Population Change 1990 to 2000" Opacity=".3"
                      Url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_1990-2000_Population_Change/MapServer" /&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add an Attribution Control and Bind the Map.Layers to the Attribution.Layers. It is when the user clicks the 
              Button_ApplyStyle that a code-behind function will be used to apply the Style defined in the Grid.Resources
              to change the appearance of the text in the Attribution Control.
              --&gt;
              &lt;esri:Attribution HorizontalAlignment="Left" Margin="12,420,0,0" Name="Attribution1" Width="600" Height="48"
                                VerticalAlignment="Top" Layers="{Binding ElementName=Map1,Path=Layers}" /&gt;
                
              &lt;!-- 
              If you prefer to have the new Style to change the appearance of the Attribution Control as soon as the
              application starts rather than have the user do it manually via a button click, uncomment the next line of XAML
              code. Make sure to comment out the above other Attribution Control to avoid having duplicates.
              --&gt;
              &lt;!--  &lt;esri:Attribution HorizontalAlignment="Left" Margin="12,420,0,0" Name="Attribution1" Width="600" Height="48" 
                                VerticalAlignment="Top" Layers="{Binding ElementName=Map1,Path=Layers}" 
                                Style="{StaticResource AttributionStyle1}"/&gt; --&gt;
              
              &lt;!-- 
              Add a button to dynamically change the text in the Attribution Control at run-time. Note the Click event 
              handler is wired up to use code-behind. 
              --&gt;
              &lt;Button Content="Apply a different ControlTemplate Style to the Attribution Control" 
                      Height="25" HorizontalAlignment="Left" Margin="12,82,0,0" 
                      Name="Button_ApplyStyle" VerticalAlignment="Top" Width="600" Click="Button_ApplyStyle_Click" /&gt;
                  
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button_ApplyStyle_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // Obtain the Style for the Resources section of the XAML file.
              System.Windows.Style myStyle = (System.Windows.Style)(LayoutRoot.Resources["AttributionStyle1"]);
              
              // Apply the custom Style to the Attribution Control.
              Attribution1.Style = myStyle;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button_ApplyStyle_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' Obtain the Style for the Resources section of the XAML file.
              Dim myStyle As System.Windows.Style = CType(LayoutRoot.Resources("AttributionStyle1"), System.Windows.Style)
              
              ' Apply the custom Style to the Attribution Control.
              Attribution1.Style = myStyle
              
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Items">
            <summary>
            Gets the ObservableCollection of IAttribution Items displayed in the Attribution Control.
            </summary>
            <remarks>
            <para>
            The Attribution Items are the Layers of the Map (or the Layers corresponding to LayerIDs) implementing 
            IAttribution and returning a non null AttributionTemplate.
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Items">Attribution.Items</see> Property returns 
            a Read only ObservableCollection(Of IAttribution) object. You can use the various 
            <a href="http://msdn.microsoft.com/en-us/library/ms668604(v=VS.95).aspx" target="_blank">ObservableCollection</a> 
            Propeties such as .Add, .Clear, .Remove, etc. to manipulate the contents of what is in the Collection. 
            However it should be noted that the 
            <see cref="E:ESRI.ArcGIS.Client.Toolkit.Attribution.PropertyChanged">Attribution.PropertyChanged</see> 
            and <see cref="E:ESRI.ArcGIS.Client.Toolkit.Attribution.Refreshed">Attribution.Refreshed</see> Events do 
            not fire as a result of adding items to the ObservableCollection. Also, the Map Control does not 
            automatically by adding new items to the ObservableCollection. The correct programming practice to see 
            automatic updates to the Attributon.Items Collection is to add Layers to the Map Control which is bound to 
            the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Layers">Attribution.Layers</see>. When Binding the 
            Map.Layers to the Attribution.Layers is done any .Add, .Remove, or change to the LayerCollection will 
            result in update to Attribution.Items.
            </para>
            <para>
            The Attribution Control is comprised of mainly one sub-component, a ContentPresenter, that displays 
            <b>Copyright</b> information for each Layer that has the IAttribution Interface implemented. The 
            implied Binding that occurs in the ControlTemplate Style of the Attribution Control to the 
            ContentPresenter sub-component is to the 
            <see cref="T:ESRI.ArcGIS.Client.IAttribution">ESRI.ArcGIS.Client.IAttribution</see> Interface members. 
            The IAttribution Interface adds functionality to some of the Layer objects; which also means that you 
            can cast to these special Layer types. These special Layer Types have an <b>.AttributionTemplate</b> 
            Property. The <b>.AttributionTemplate</b> Property is the internal mechanism for constructing the 
            IAttribution object. Only those Layers which have a <b>.AttributionTemplate</b> Property will get 
            listed in the ObservabaleCollection(Of IAttribution) as a result of using the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.Attribution.Items">Attribution.Items</see> Property. The 
            following Layers are those that implement the IAttribution Interface and have an 
            <b>.AttributionTemplate</b> Property: 
            </para>para&gt;
            <para>
            <list type="bullet">
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer">ArcGISDynamicMapServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISImageServiceLayer">ArcGISImageServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer">ArcGISTiledMapServiceLayer</see></item>
            <item><see cref="T:ESRI.ArcGIS.Client.FeatureLayer">FeatureLayer</see></item>
            <item><see cref="M:ESRI.ArcGIS.Client.Bing.TileLayer">TileLayer</see></item>
            <item><see cref="M:ESRI.ArcGIS.Client.Toolkit.DataSources.OpenStreetMapLayer">OpenStreetMapLayer</see></item>
            </list>
            </para>
            <para>
            <b>Note:</b>This also means that you can also use implied Binding in the ControlTemplate Style of the 
            Attribution Control for the various Properties of the special Types of Layers such as: .ID, .Url, 
            .Version, etc. 
            </para>
            <para>
            Both the Attribution.PropertyChanged and Attribution.Refreshed Events fire as a result of the Layers 
            that Implement IAttribution in the LayerCollection being added or removed in the Attribution.Layers 
            Property. Use the Attribution.Refreshed Event if you want to add, delete, or modify the default 
            attribution items given by the framework. Use the Attribution.PropertyChanged Event on property 
            Attribution.Items, if you want to be aware of this change in order to hook up an Event fired by 
            Attribution.Items. <b>Note:</b> The various special Layer types that Implement the IAttribution 
            Interface have <b>Copyright</b> information Properties that are ReadOnly (meaning they can't be changed 
            by the client application) and hence it is impossible force the Attribution.PropertyChanged and 
            Attribution.Refreshed Events to update as a result of trying to modify the <b>Copyright</b> 
            information on the client side. 
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            By default three Layers have been added to the Map Control and the Copyright information for those 
            Layers are displayed in the Attribution Control. Click the 'Interrogate Attribution.Items' button to 
            loop through the ObservableCollection(Of IAttribution) object obtained by the Attribution.Items Property 
            to display various information about items in the Control.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Interrogating the Attribution.Items and displaying the results in a MessageBox." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.Attribution.Items.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="65" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="626" 
                         TextWrapping="Wrap" Margin="2,2,0,0" 
                         Text="By default three Layers have been added to the Map Control and the CopyrightText information
                         for those Layers are displayed in the Attribution Control. Click the 'Interrogate Attribution.Items' 
                         button to loop through the ObservableCollection(Of IAttribution) object obtained by the 
                         Attribution.Items Property to display various information about items in the Control." /&gt;
              
              &lt;!-- Add a Map Control zoomed to a specific Extent. --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,105,0,0" Name="Map1" 
                        VerticalAlignment="Top" Height="303" Width="600" 
                        Extent="-10723833,4627392,-10704398,4644168"&gt;
              
                &lt;!-- 
                Add an ArcGISTiledMapServiceLayer. Note: since an ID value is specified the design-time will 
                list the Layer ID in Attribution Control placeholder (Ex: World Imagery attribution.).
                --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="World Imagery"
                      Url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/&gt;
                  
                &lt;!-- 
                Add an ArcGISDynamicMapServiceLayer. Note: since an ID value is specified the design-time will 
                list the Layer ID in Attribution Control placeholder (Ex: World Transportation attribution.).
                --&gt;
                &lt;esri:ArcGISDynamicMapServiceLayer ID="World Transportation"
                      Url="http://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer" /&gt;
                
                &lt;!-- 
                Add a FeatureLayer. Note: since an ID value is specified the design-time will 
                list the Layer ID in Attribution Control placeholder (Ex: Local Rivers attribution.).
                --&gt;
                &lt;esri:FeatureLayer ID="Local Rivers"
                      Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Hydrography/Watershed173811/FeatureServer/1"
                      AutoSave="False" DisableClientCaching="True" OutFields="*" Mode="OnDemand" /&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add an Attribution Control and Bind the Map.Layers to the Attribution.Layers. Change a few
              visual appearance settings related to the Font for the text that is displayed in the Control. 
              --&gt;
              &lt;esri:Attribution HorizontalAlignment="Left" VerticalAlignment="Top" Margin="12,420,0,0" Name="Attribution1" 
                                Layers="{Binding ElementName=Map1,Path=Layers}" Width="600" Height="48" 
                                FontSize="12" FontFamily="Courier New" Foreground="Green" /&gt;
              
              &lt;!-- 
              Add a button to dynamically interrogate each IAttribution object in the ObservableCollection using the 
              Attribution.Items Property. Note the Click event handler is wired up to use code-behind. 
              --&gt;
              &lt;Button Content="Interrogate Attribution.Items" Height="23" HorizontalAlignment="Left" 
                      Margin="12,76,0,0" Name="Button_Interrogate_AttributeItems" 
                      VerticalAlignment="Top" Width="600" Click="Button_Interrogate_AttributeItems_Click"/&gt;
              
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button_Interrogate_AttributeItems_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function loops through all of the ObservabaleCollection&lt;IAttribution&gt; items of the Attribution
              // Control to display various information in a MessageBox.
              
              // Get the ObservabaleCollection&lt;IAttribution&gt; object.
              Collections.ObjectModel.ObservableCollection&lt;ESRI.ArcGIS.Client.IAttribution&gt; theObservableCollectionOfIAttribution = null;
              theObservableCollectionOfIAttribution = Attribution1.Items;
              
              // Get the count of the number of items in the ObservabaleCollection&lt;IAttribution&gt;.
              int theCount = theObservableCollectionOfIAttribution.Count;
              
              // Define a StringBuilder to display information back to the user about the Attribution Control.
              Text.StringBuilder myStringBuilder = new Text.StringBuilder();
              
              // Add the count of items to the StringBuilder.
              myStringBuilder.Append("There are " + theCount.ToString() + " Layers in the Attribution Control." + Environment.NewLine);
              
              // Loop through each item in the ObservabaleCollection&lt;IAttribution&gt;.
              foreach (ESRI.ArcGIS.Client.IAttribution oneIAttribution in theObservableCollectionOfIAttribution)
              {
                // Define some variables for CopyrightText and Layer.ID information.
                string theCopyrightText = null;
                string theLayerID = null;
                
                // FYI: The ESRI.ArcGIS.Client.IAttribution object are really various types of Layer objects!
                
                // Not every Type of Layer has a .AttributionTemplate Property which is the internal mechanism for 
                // constructing the ESRI.ArcGIS.Client.IAttribution object. Only those Layers which have a
                // .AttributionTemplate Property will get listed in the ObservabaleCollection&lt;IAttribution&gt; as 
                // a result of the Attribution.Items Property. Some of theses special Types of Layers that have a 
                // .AttributionTemplate Property are used below to obtain the various CopyrightText and Layer.ID 
                // information
                
                if (oneIAttribution is ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer)
                {
                  ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer oneArcGISDynamicMapServiceLayer = null;
                  oneArcGISDynamicMapServiceLayer = oneIAttribution as ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer;
                  theCopyrightText = oneArcGISDynamicMapServiceLayer.CopyrightText;
                  theLayerID = oneArcGISDynamicMapServiceLayer.ID;
                }
                else if (oneIAttribution is ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer)
                {
                  ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer oneArcGISTiledMapServiceLayer = null;
                  oneArcGISTiledMapServiceLayer = oneIAttribution as ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer;
                  theCopyrightText = oneArcGISTiledMapServiceLayer.CopyrightText;
                  theLayerID = oneArcGISTiledMapServiceLayer.ID;
                }
                else if (oneIAttribution is ESRI.ArcGIS.Client.FeatureLayer)
                {
                  ESRI.ArcGIS.Client.FeatureLayer oneFeatureLayer = null;
                  oneFeatureLayer = oneIAttribution as ESRI.ArcGIS.Client.FeatureLayer;
                  ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo oneFeatureLayerInfo = oneFeatureLayer.LayerInfo;
                  theCopyrightText = oneFeatureLayerInfo.CopyrightText;
                  theLayerID = oneFeatureLayer.ID;
                }
                
                // Append the CopyrightText and Layer.ID information about the Layer in the StringBuilder.
                myStringBuilder.Append(Environment.NewLine);
                myStringBuilder.Append("Layer: " + theLayerID + " has the CopyrightText: " + theCopyrightText + Environment.NewLine);
              }
              
              // Display the information about the Attribute Control to the user. 
              MessageBox.Show(myStringBuilder.ToString());
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button_Interrogate_AttributeItems_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function loops through all of the ObservabaleCollection(Of IAttribution) items of the Attribution
              ' Control to display various information in a MessageBox.
              
              ' Get the ObservabaleCollection(Of IAttribution) object.
              Dim theObservableCollectionOfIAttribution As Collections.ObjectModel.ObservableCollection(Of ESRI.ArcGIS.Client.IAttribution)
              theObservableCollectionOfIAttribution = Attribution1.Items
              
              ' Get the count of the number of items in the ObservabaleCollection(Of IAttribution).
              Dim theCount As Integer = theObservableCollectionOfIAttribution.Count
              
              ' Define a StringBuilder to display information back to the user about the Attribution Control.
              Dim myStringBuilder As New Text.StringBuilder
              
              ' Add the count of items to the StringBuilder.
              myStringBuilder.Append("There are " + theCount.ToString + " Layers in the Attribution Control." + vbCrLf)
              
              ' Loop through each item in the ObservabaleCollection(Of IAttribution).
              For Each oneIAttribution As ESRI.ArcGIS.Client.IAttribution In theObservableCollectionOfIAttribution
                
                ' Define some variables for CopyrightText and Layer.ID information.
                Dim theCopyrightText As String = Nothing
                Dim theLayerID As String = Nothing
                
                ' FYI: The ESRI.ArcGIS.Client.IAttribution object are really various types of Layer objects!
                
                ' Not every Type of Layer has a .AttributionTemplate Property which is the internal mechanism for 
                ' constructing the ESRI.ArcGIS.Client.IAttribution object. Only those Layers which have a
                ' .AttributionTemplate Property will get listed in the ObservabaleCollection(Of IAttribution) as 
                ' a result of the Attribution.Items Property. Some of theses special Types of Layers that have a 
                ' .AttributionTemplate Property are used below to obtain the various CopyrightText and Layer.ID 
                ' information
                
                If TypeOf oneIAttribution Is ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer Then
                  Dim oneArcGISDynamicMapServiceLayer As ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer = Nothing
                  oneArcGISDynamicMapServiceLayer = TryCast(oneIAttribution, ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer)
                  theCopyrightText = oneArcGISDynamicMapServiceLayer.CopyrightText
                  theLayerID = oneArcGISDynamicMapServiceLayer.ID
                ElseIf TypeOf oneIAttribution Is ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer Then
                  Dim oneArcGISTiledMapServiceLayer As ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer = Nothing
                  oneArcGISTiledMapServiceLayer = TryCast(oneIAttribution, ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer)
                  theCopyrightText = oneArcGISTiledMapServiceLayer.CopyrightText
                  theLayerID = oneArcGISTiledMapServiceLayer.ID
                ElseIf TypeOf oneIAttribution Is ESRI.ArcGIS.Client.FeatureLayer Then
                  Dim oneFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = Nothing
                  oneFeatureLayer = TryCast(oneIAttribution, ESRI.ArcGIS.Client.FeatureLayer)
                  Dim oneFeatureLayerInfo As ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo = oneFeatureLayer.LayerInfo
                  theCopyrightText = oneFeatureLayerInfo.CopyrightText
                  theLayerID = oneFeatureLayer.ID
                End If
                
                ' Append the CopyrightText and Layer.ID information about the Layer in the StringBuilder.
                myStringBuilder.Append(vbCrLf)
                myStringBuilder.Append("Layer: " + theLayerID + " has the CopyrightText: " + theCopyrightText + vbCrLf)
                
              Next
              
              ' Display the information about the Attribute Control to the user. 
              MessageBox.Show(myStringBuilder.ToString)
              
            End Sub
            </code>
            </example>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Attribution.Refreshed">
            <summary>
            Occurs when the attribution items are refreshed. 
            Give the opportunity for an application to add or remove attribution items.
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Attribution.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Attribution.DesignAttribution">
            <summary>
            Attribution item for design mode
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.MapProgressBar">
            <summary>
            A Map ProgressBar control that automatically fades in and out when map loads tiles.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MapProgressBar"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MapProgressBar"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application
            code or internal processes (such as a rebuilding layout pass) call
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.TextBrushProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.TextBrush"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.Map">
            <summary>
            Sets or gets the Map control associated with the <see cref="T:System.Windows.Controls.ProgressBar"/>.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MapProgressBar.TextBrush">
            <summary>
            Gets or sets the text brush.
            </summary>
            <value>The text brush.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.HyperlinkButton">
            <summary>
            The HyperlinkButton control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.HyperlinkButton.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Primitives.HyperlinkButton"/> class.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.MapLayerItem">
            <summary>
            Internal class encapsulating a layer item representing a map layer.
            This class manages the events coming from the layer and the legend refresh process.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapLayerItem.#ctor(ESRI.ArcGIS.Client.Layer)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MapLayerItem"/> class.
            </summary>
            <param name="layer">The layer.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapLayerItem.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MapLayerItem"/> class. Only useful in Design.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MapLayerItem.Refresh">
            <summary>
            Refreshes the legend from infos coming from the map layer.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.EditorWidget">
            <summary>
            Editor widget.
            </summary>
            <seealso cref="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.TemplatePicker"/>
            <seealso cref="T:ESRI.ArcGIS.Client.Editor"/>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.EditorWidget.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.EditorWidget"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.EditorWidget.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.EditorWidget"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.EditorWidget.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code
            or internal processes call <see cref="M:System.Windows.FrameworkElement.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.GeometryServiceCredentialsProperty">
            <summary>
            Identifies the <see cref="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.GeometryServiceCredentialsProperty"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AlwaysDisplayDefaultTemplatesProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AlwaysDisplayDefaultTemplates"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AutoSelectProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AutoSelect"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AutoCompleteProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AutoComplete"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ContinuousProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.Continuous"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.FreehandProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.Freehand"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MaintainAspectRatioProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MaintainAspectRatio"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ScaleEnabledProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ScaleEnabled"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.RotateEnabledProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.RotateEnabled"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MoveEnabledProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MoveEnabled"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.EditVerticesEnabledProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.EditVerticesEnabled"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.GeometryServiceUrlProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.GeometryServiceUrl"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.LayerIDsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.LayerIDs"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MapProperty">
            /// <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ShowAttributesOnAddProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ShowAttributesOnAdd"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.GeometryServiceCredentials">
            <summary>
            Gets or sets the network credentials that are sent to the host and used to authenticate the request.
            </summary>
            <value>The credentials used for authentication.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AlwaysDisplayDefaultTemplates">
            <summary>
            Gets or sets a value indicating whether default templates should 
            always be displayed.
            </summary>
            <remarks>
            Default templates are displayed when no other templates exist.
            </remarks>
            <value>
            	<c>true</c> if [always display default templates]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AutoSelect">
            <summary>
            Gets or sets a value indicating whether selection is automatic 
            for tools that require it.
            </summary>
            <remarks>
            Tools that use auto selection: Cut, Reshape, Union, and AutoComplete Add
            </remarks>
            <value><c>true</c> if [auto select]; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.AutoComplete">
            <summary>
            Gets or sets a value indicating whether auto completion is enabled 
            when adding polygons.
            </summary>
            <remarks>
            When AutoComplete is enabled, a line is drawn instead of a polygon 
            and the rest of the polygon is completed based on snapping to nearby features.
            </remarks>
            <value><c>true</c> if [auto complete]; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.Continuous">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:ESRI.ArcGIS.Client.Toolkit.EditorWidget"/> is continuous.
            </summary>
            <value><c>true</c> if continuous; otherwise, <c>false</c>.</value>
            <remarks>
            Tools contained in the EditorWidget like the TemplatePicker, EditVertices, Reshape, 
            Cut, Selection, etc. will remain active until a different tool is selected.
            </remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.Freehand">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:ESRI.ArcGIS.Client.Toolkit.EditorWidget"/> 
            is using freehand draw mode when using Add, Reshape, Union and Cut.
            </summary>
            <value><c>true</c> if freehand; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MaintainAspectRatio">
            <summary>
            Gets or sets a value indicating whether aspect ratio 
            need to be maintained when geometry is scaled.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ScaleEnabled">
            <summary>
            Gets or sets a value indicating whether scale is enabled.
            </summary>
            <value><c>true</c> if scale is enabled; otherwise, <c>false</c>.</value>
            <remarks>If ScaleEnabled is true and command EditVertices is active,
            the selected geometry can be scaled until this value is set to false.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.RotateEnabled">
            <summary>
            Gets or sets a value indicating whether rotate is enabled.
            </summary>
            <value><c>true</c> if rotate is enabled; otherwise, <c>false</c>.</value>
            <remarks>If RotateEnabled is true and command EditVertices is active,
            the selected geometry can be rotated until this value is set to false.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.MoveEnabled">
            <summary>
            Gets or sets a value indicating whether move is enabled.
            </summary>
            <value><c>true</c> if move is enabled; otherwise, <c>false</c>.</value>
            <remarks>If MoveEnabled is true and command EditVertices is active,
            the selected geometry can be moved until this value is set to false.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.EditVerticesEnabled">
            <summary>
            Gets or sets a value indicating whether edit vertices is enabled.
            </summary>
            <value><c>true</c> if edit vertices is enabled; otherwise, <c>false</c>.</value>
            <remarks>If EditVerticesEnabled is true and command EditVertices is active,
            the selected geometry's vertices can be edited until this value is set to false.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.GeometryServiceUrl">
            <summary>
            Gets or sets the geometry service URL.
            </summary>
            <value>The geometry service URL.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.LayerIDs">
            <summary>
            Gets or sets the layer IDs of the layers for which templates are displayed.
            </summary>
            <remarks>
            Specified in XAML and in Blend as a comma-delimited string: If a layer 
            name contains a comma, please use &#44; instead of the comma.
            If null/empty, templates from all feature layers are used. Order of 
            the layer ids is respected in generating templates.
            </remarks>
            <value>The layer IDs.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.Map">
            <summary>
            Gets or sets the map that the template picker is buddied to.
            </summary>
            <value>The map.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.EditorWidget.ShowAttributesOnAdd">
            <summary>
            Gets or sets a value indicating whether the attributes are shown
            when a graphic is added to the feature layer
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.EditorWidget.EditCompleted">
            <summary>
            Occurs when an edit has completed.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor">
            <summary>
            The AttachmentEditor Control allows for uploading, downloading, and deleting of files associated with 
            Graphic features in a FeatureLayer.
            </summary>
            <remarks>
            <para>
            The AttachmentEditor is a User Interface (UI) control that allows clients to upload, download, and delete 
            files associated with <see cref="T:ESRI.ArcGIS.Client.Graphic">Graphic</see> features in a 
            <see cref="T:ESRI.ArcGIS.Client.FeatureLayer">FeatureLayer</see> of a backend ArcGIS Server <b>FeatureServer</b> 
            database. The AttachmentEditor Control can be created in at design time in XAML or in dynamically at runtime 
            in the code-behind. The AttachmentEditor Control is one of several controls available in the Toolbox in 
            Visual Studio when the ESRI ArcGIS API for Silverlight/WPF is installed, see the following screen 
            shot:
            </para>
            <img border="0" alt="Example of the AttachmentEditor Control on the XAML design surface of a Silverlight application." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor.png"/>
            <para>
            The default appearance of the AttachmentEditor Control can be modified using numerous inherited Properties 
            from System.Windows.FrameworkElement, System.Windows.UIElement, and System.Windows.Controls. An example of 
            some of these Properties include: .Height, .Width, .BackGround, .BorderBrush, .BorderThickness, .FontFamily, 
            .FontSize, .FontStretch, .FontStyle, .Foreground, .HorizontalAlignment, .VerticalAlignment, .Margin, .Opacity, 
            .Visibility, etc. 
            </para>
            <para>
            Note: you cannot change the core behavior of the sub-components (i.e. Button, ListBox, etc.) of the 
            AttachmentEditor Control using standard Properties or Methods alone. To change the core behavior of the 
            sub-components and their appearance of the Control, developers can modify the Control Template in XAML and 
            the associated code-behind file. The easiest way to modify the UI sub-components is using Microsoft 
            Expression Blend. Then developers can delete/modify existing or add new sub-components in Visual Studio to 
            create a truly customized experience. A general approach to customizing a Control Template is discussed in 
            the ESRI blog entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>.
            </para>
            <para>
            Additionally, changing the default behavior (or functionality) and appearance of the ListBox sub-component 
            that displays information about attachments in the AttachmentEditor Control can be modified using a DataTemplate 
            via the <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.ItemTemplate">AttachmentEditor.ItemTemplate</see> 
            Property and writing you own custom code when necessary. When defining the DataTemplate, the Binding Properties 
            that developers want to use to control the behavior of the AttachmentEditor are based upon those in the 
            <see cref="T:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo">ESRI.ArcGIS.Client.FeatureService.AttachmentInfo</see> 
            Class.
            </para>
            <para>
            To use the AttachmentEditor Control the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FeatureLayer">AttachmentEditor.FeatureLayer</see> 
            Property must be set to a valid FeatureLayer that has 
            <a href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001t000003vt000000.htm" target="_blank">attachments enabled</a> 
            in an ArcGIS Server 
            <a href="http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_dotnet_help/index.html#//009300000021000000.htm" target="_blank">FeatureServer</a>. 
            Developers who do not have direct access to management of ArcGIS Server but need to know if An ArcGIS Server 
            FeatureLayer has attachments enabled can specify the FeatureLayer.Url in an web browser and look for the 
            <b>Has Attachments</b> section to see if the value is <b>True</b>, see the following screen shot:
            </para>
            <img border="0" alt="Using the FeatureLayer.Url Property to see if 'Has Attachments' is True." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor2.png"/> 
            <para>
            Additionally, developers can programmatically discover if a FeatureLayer <b>Has Attachments</b> by using the 
            <see cref="P:ESRI.ArcGIS.Client.FeatureLayer.LayerInfo">FeatureLayer.LayerInfo</see> Property to return an 
            <see cref="T:ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo">ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo</see> 
            Class. Use the 
            <see cref="P:ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo.HasAttachments">ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo.HasAttachments</see> 
            Property to obtain a Boolean value if attachments are enabled for the FeatureService. A code example is provided 
            for programmatically discovering if a FeatureLayer <b>Has Attachments</b> in the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FeatureLayer">AttachmentEditor.FeatureLayer</see> 
            Property documentation.
            </para>
            <para>
            If the AttachmentEditor.FeatureLayer Property is not set to a valid ArcGIS Server <b>FeatureServer</b> service 
            with attachments enabled, a Visual Studio NotSupportedException error containing syntax similar to the following 
            will occur: "Layer does not support attachments" or "Layer does not support adding attachments". It should be 
            noted the FeatureLayer.Url Property of an ArcGIS Server <b>MapServer</b> service looks very similar to 
            <b>FeatureServer</b> and might even display a <b>Has Attributes</b> value equal True when viewed in a web 
            browser but this should not be used for the AttachmentEditor Control. A valid <b>FeatureServer</b> will have 
            the words "FeatureServer" in the URL, not "MapServer" which will cause errors.   
            </para>
            <para>
            It is the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.GraphicSource">AttachmentEditor.GraphicSource</see> 
            Property that causes the AttachmentEditor to make a call to the ArcGIS Server <b>FeatureServer</b> to see if any 
            existing attachments are associated with a specific Graphic in the FeatureLayer stored in the backend database. 
            If any attachments are found to be associated with a Graphic in the FeatureLayer, they will be listed in the 
            ListBox portion of the control. For each attachment that is listed in the ListBox of the AttachmentEditor, users 
            can click on the hyperlink with the attachment filename to use the Microsoft File Download dialog to save the 
            file on the local machine. Attachments listed in the ListBox can also be deleted from the backend ArcGIS Server 
            FeatureService by clicking the red X next to the attachment name. 
            </para>
            <para>
            When a Graphic is associated with the AttachmentEditor.GraphicSource Property the <b>Add</b> button of the 
            AttachmentEditor becomes enabled. The <b>Add</b> button allows users on the client machine to upload files on 
            the local computer to the ArcGIS Server <b>FeatureServer</b> backend database via the Microsoft OpenFileDialog 
            dialog. The <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.Filter">AttachmentEditor.Filter</see>, 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FilterIndex">AttachmentEditor.FilterIndex</see>, and 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.Multiselect">AttachmentEditor.Multiselect</see> Properties 
            control the behavior of the Microsoft OpenFileDialog, see the following screen shot: 
            </para>
            <img border="0" alt="Demonstrating what areas of the Microsoft OpenFileDialog is controlled by the AttachmentEditor’s Filter, FilterIndex, and Multiselect Properties." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor3.png"/>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            When the Map loads click on a point feature in the FeatureLayer to select the Graphic. Then use the 
            AttachmentEditor to add, delete, and download files.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Using the AttachmentEditor to download, upload, and delete files." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor4.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="64" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                         Width="512" TextWrapping="Wrap" Margin="12,12,0,0" 
                         Text="When the Map loads click on a point feature in the FeatureLayer to select
                               the Graphic. Then use the AttachmentEditor to add, delete, and download files." /&gt;
              
              &lt;!-- 
              Add a Map control with an ArcGISTiledMapeServiceLayer and a FeatureLayer. It is important to 
              provide a Name for the Map Control as this will be used by the AttachmentEditor Control.
              Define and initial Extent for the map.
              --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,100,0,0" Name="MyMap" 
                        VerticalAlignment="Top" Height="272" Width="400" 
                        Extent="-13625087,4547888,-13623976,4548643"&gt;
              
                &lt;!-- Add a backdrop ArcGISTiledMapServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer 
                          Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
                
                &lt;!-- 
                The FeatureLayer is based upon an ArcGIS Server 'FeatureServer' service not a 'MapServer' service.
                It is important to provide an ID value as this will be used for Binding in the AttachementEditor.
                The MouseLeftButtonUp Event handler has been defined for the FeatureLayer. 
                --&gt;
                &lt;esri:FeatureLayer ID="IncidentsLayer"
                       Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0"
                       MouseLeftButtonUp="FeatureLayer_MouseLeftButtonUp" AutoSave="False"                  
                       DisableClientCaching="True" OutFields="*" Mode="OnDemand" /&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!-- 
              Wrap the Attachment Editor inside of a Grid and other controls to provide a stylistic look 
              and to provide instructions to the user.
              --&gt;
              &lt;Grid HorizontalAlignment="Left" VerticalAlignment="Top" Margin="450,100,15,0" &gt;
                &lt;Rectangle Fill="BurlyWood" Stroke="Green"  RadiusX="15" RadiusY="15" Margin="0,0,0,5" &gt;
                  &lt;Rectangle.Effect&gt;
                    &lt;DropShadowEffect/&gt;
                  &lt;/Rectangle.Effect&gt;
                &lt;/Rectangle&gt;
                &lt;Rectangle Fill="#FFFFFFFF" Stroke="Aqua" RadiusX="5" RadiusY="5" Margin="10,10,10,15" /&gt;
                &lt;StackPanel Orientation="Vertical" HorizontalAlignment="Left"&gt;
                  &lt;TextBlock Text="Click on a point feature to select it, and click the 'Add' button to attach a file." 
                                 Width="275" TextAlignment="Left" Margin="20,20,20,5" TextWrapping="Wrap" FontWeight="Bold"/&gt;
                
                  &lt;!--
                  Add an AttachmentEditor. Provide a x:Name for the AttachmentEditor so that it can be used in the 
                  code-behind file. The FeatureLayer Property is bound to the 'IncidentLayer' of the Map Control.
                  Two groups of Filter types are used (you can have multiple file extensions in a group) to drive the
                  OpenFileDialog. The FilterIndex shows the first group of Filter Types in the OpenFileDialog 
                  dropdown list. Only allow the user to upload (i.e. Add) one file at a time using the OpenFileDialog
                  with the Multiselect set to False. An UploadFailed Event has been defined for the code-behind.
                  --&gt;
                  &lt;esri:AttachmentEditor x:Name="MyAttachmentEditor" VerticalAlignment="Top" Margin="20,5,20,20" 
                                       Background="LightGoldenrodYellow" Width="280" Height="190" HorizontalAlignment="Right"                              
                                       FeatureLayer="{Binding Layers[IncidentsLayer], ElementName=MyMap}" 
                                       Filter="Image Files|*.jpg;*.gif;*.png;*.bmp|Adobe PDF Files (.pdf)|*.pdf" 
                                       FilterIndex="1" Multiselect="False"
                                       UploadFailed="MyAttachmentEditor_UploadFailed"&gt;
                  &lt;/esri:AttachmentEditor&gt;
                &lt;/StackPanel&gt;
              &lt;/Grid&gt;
                  
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void FeatureLayer_MouseLeftButtonUp(object sender, ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs e)
            {
              // This function obtains the FeatureLayer, loops through all of the Graphic features and
              // un-selects them. Then for the Graphic for which the user clicked with the mouse select
              // it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              // downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              // Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = sender as ESRI.ArcGIS.Client.FeatureLayer;
              
              // Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              for (int i = 0; i &lt; myFeatureLayer.SelectionCount; i++)
              {
                myFeatureLayer.SelectedGraphics.ToList()[i].UnSelect();
              }
              
              // Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select();
              
              // Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              // to update with any attachments currently associated with the Graphic.
              MyAttachmentEditor.GraphicSource = e.Graphic;
            }
            
            private void MyAttachmentEditor_UploadFailed(object sender, ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailedEventArgs e)
            {
              // Display any error messages that may occur if the AttachmentEditor fails to upload a file.
              MessageBox.Show(e.Result.Message);
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub FeatureLayer_MouseLeftButtonUp(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs)
              
              ' This function obtains the FeatureLayer, loops through all of the Graphic features and
              ' un-selects them. Then for the Graphic for which the user clicked with the mouse select
              ' it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              ' downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              ' Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = TryCast(sender, ESRI.ArcGIS.Client.FeatureLayer)
              
              ' Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              For i As Integer = 0 To myFeatureLayer.SelectionCount - 1
                myFeatureLayer.SelectedGraphics.ToList()(i).UnSelect()
              Next i
              
              ' Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select()
              
              ' Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              ' to update with any attachments currently associated with the Graphic.
              MyAttachmentEditor.GraphicSource = e.Graphic
              
            End Sub
            
            Private Sub MyAttachmentEditor_UploadFailed(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailedEventArgs)
              ' Display any error messages that may occur if the AttachmentEditor fails to upload a file.
               MessageBox.Show(e.Result.Message)
            End Sub
            </code>
            </example>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor"/> class.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FeatureLayerProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FeatureLayer"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.GraphicSourceProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.GraphicSource"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.ItemTemplateProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.ItemTemplate"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code or internal processes 
            (such as a rebuilding layout pass) call <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>. 
            In simplest terms, this means the method is called just before a UI element displays in an application. 
            For more information, see Remarks.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FeatureLayer">
            <summary> 
            Gets or sets the FeatureLayer for which the AttachmentEditor will use as its data source to display attachment 
            information.
            </summary>
            <remarks>
            <para>
            To use the AttachmentEditor Control the AttachmentEditor.FeatureLayer Property must be set to a valid 
            FeatureLayer that has 
            <a href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001t000003vt000000.htm" target="_blank">attachments enabled</a> 
            in an ArcGIS Server 
            <a href="http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_dotnet_help/index.html#//009300000021000000.htm" target="_blank">FeatureServer</a>. 
            Developers who do not have direct access to management of ArcGIS Server but need to know if An ArcGIS Server 
            FeatureLayer has attachments enabled can do so programmatically by using the 
            <see cref="P:ESRI.ArcGIS.Client.FeatureLayer.LayerInfo">FeatureLayer.LayerInfo</see> Property to return an 
            <see cref="T:ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo">ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo</see> 
            object. Use the 
            <see cref="P:ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo.HasAttachments">ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo.HasAttachments</see> 
            Property to obtain a Boolean value to know if attachments are enabled for the FeatureService. A code example is 
            provided in this document for programmatically discovering if a FeatureLayer <b>Has Attachments</b>.
            </para>
            <para>
            Alternatively, developers can specify the FeatureLayer.Url in an web browser and look for the 
            <b>Has Attachments</b> section to see if the value is <b>True</b>, see the following screen shot:
            </para>
            <img border="0" alt="Using the FeatureLayer.Url Property to see if ‘Has Attachments’ is True." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor2.png"/>
            <para>
            If the AttachmentEditor.FeatureLayer Property is not set to a valid ArcGIS Server <b>FeatureServer</b> service 
            with attachments enabled, a Visual Studio NotSupportedException error containing syntax similar to the following 
            will occur: "Layer does not support attachments" or "Layer does not support adding attachments". It should be 
            noted the FeatureLayer.Url Property of an ArcGIS Server <b>MapServer</b> service looks very similar to 
            <b>FeatureServer</b> and might even display a <b>Has Attributes</b> value equal True when viewed in a web 
            browser but this should not be used for the AttachmentEditor Control. A valid <b>FeatureServer</b> will have 
            the words “FeatureServer” in the URL, not “MapServer” which will cause errors.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the button to add the FeatureLayer to the Map Control and wire-up an AttachmentEditor if applicable. The 
            code example demonstrates adding a FeatureLayer dynamically at run-time. If the FeatureLayer has attachments 
            enabled (i.e. True) in the FeatureService, dynamically add the functionality to associate an AttachmentEditor 
            with the FeatureLayer for uploading/downloading/deleting attachments associated with the Graphic features in the 
            FeatureLayer.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Check if a FeatureLayer has attachments enabled in the FeatureService and dynamically associate the AttachmentEditor if True." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor.FeatureLayer.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
              &lt;!--
              This code example demonstrates adding a FeatureLayer dynamically at run-time. If the FeatureLayer 
              has attachments enabled (i.e. True) in the FeatureService, dynamically add the functionality
              to associate an AttachmentEditor with the FeatureLayer for uploading/downloading/deleting
              attachments associated with the Graphic features in the FeatureLayer.
              --&gt;
              &lt;Grid x:Name="LayoutRoot"&gt;
              
                &lt;!-- Add a button with instructions. The Click Event is enabled to for code-behind functionality. --&gt;
                &lt;Button Content="Add the FeatureLayer to the Map and wire-up an AttachmentEditor if applicable." 
                        Height="23" HorizontalAlignment="Left" Margin="12,6,0,0" Name="Button1" 
                        VerticalAlignment="Top" Width="616" Click="Button1_Click"/&gt;
                
                &lt;!-- Add a Label telling the user to supply a FeatureLayer.Url --&gt;
                &lt;sdk:Label Height="28" HorizontalAlignment="Left" Name="Label1" VerticalAlignment="Top" 
                           Width="182"  Content="Enter a Url for a FeatureLayer:" Margin="12,41,0,0" /&gt;
                
                &lt;!-- 
                Add a default text string for a FeatureLayer.Url where attachements are enabled in the
                FeatureServer.
                
                A FeatureLayer.Url WITH Attachments: 
                "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0" 
                
                A FeatureLayer.Url WITHOUT Attachments: 
                "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Fire/Sheep/FeatureServer/0"
                --&gt;
                &lt;TextBox Height="23" HorizontalAlignment="Left" Margin="12,58,0,0" Name="TextBox_FeatureLayerUrl" 
                         VerticalAlignment="Top" Width="628" 
                         Text="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0"/&gt;
                
                &lt;!-- Add a Label informing the user if FeatureLayer supports attachents. --&gt;
                &lt;sdk:Label Height="28" HorizontalAlignment="Left" Margin="12,98,0,0" Name="Label2" 
                           VerticalAlignment="Top" Width="300" 
                           Content="Does the FeatureLayer support having attachments?"/&gt;
                
                &lt;!-- 
                This is the TexBlock that will provide a True or False answer. A True means the FeatureLayer
                supports having attachments. A False means the FeatureLayer does not support adding attachments. 
                The TextBlock is invisible by default until the user clicks the Button1.
                --&gt;
                &lt;TextBlock Height="23" HorizontalAlignment="Left" Margin="307,98,0,0" 
                           Name="TextBlock_FeatureLayerLayerInfoHasAttachments" 
                           Text="TextBlock" VerticalAlignment="Top" Visibility="Collapsed"/&gt;
                
                &lt;!-- Add an ESRI Map Control. --&gt;
                &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,124,0,0" Name="Map1" 
                          VerticalAlignment="Top" Height="344" Width="320"&gt;
                
                  &lt;!-- Add a backdrop ArcGISTiledMapServiceLayer. --&gt;
                  &lt;esri:ArcGISTiledMapServiceLayer 
                          Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
              &lt;/esri:Map&gt;
              
              &lt;!-- 
              Add a default AttachmentEditor Control and set it to be invisible by default. Only if the 
              supplied FeatureLayer has attachments = True will it be displayed. 
              --&gt;      
              &lt;esri:AttachmentEditor HorizontalAlignment="Left" Margin="338,124,0,0" Name="AttachmentEditor1" 
                                     VerticalAlignment="Top" Height="344" Width="290" Visibility="Collapsed"/&gt;
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button1_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function is the main driver for the sample code. It creates a FeatureLayer dynamically
              // and adds it to the Map Control. The FeatureLayer.Initialized Event handler is dynamically 
              // wired-up and activated when the FeatureLayer is added to the Map.
              
              // Create a new FeatureLayer using the Url text string supplied by the user.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = new ESRI.ArcGIS.Client.FeatureLayer();
              myFeatureLayer.Url = TextBox_FeatureLayerUrl.Text;
              
              // Add the FeatureLayer to the Map.
              Map1.Layers.Add(myFeatureLayer);
              
              // Create the FeatureLayer.Intialized Event handler. It will be invoked automatically
              // when the FeatureLayer is added to the Map Control.
              myFeatureLayer.Initialized += myFeatureLayer_Initialized;
            }
            
            private void myFeatureLayer_Initialized(object sender, EventArgs e)
            {
              // This function executes as a result of the FeatureLayer being initialized for the first time.
              // If FeatureLayer suppports having attachments in the FeatureService, set the properties on
              // the AttachmentEditor Control and wire-up the FeatureLayer.MouseLeftButtonUp Event handler
              // which will allow users to click on a Graphic and display any attachment information.
              
              // Obtain the FeatureLayer from the sender argument.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = sender as ESRI.ArcGIS.Client.FeatureLayer;
              
              // Get a FeatureService.FeatureLayerInfo object from the FeatureLayer.
              ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo myFeatureLayerInfo = myFeatureLayer.LayerInfo;
              
              // Display if attachments have been enabled in the TextBlock.
              TextBlock_FeatureLayerLayerInfoHasAttachments.Text = myFeatureLayerInfo.HasAttachments.ToString();
              TextBlock_FeatureLayerLayerInfoHasAttachments.Visibility = Windows.Visibility.Visible;
              
              if (myFeatureLayerInfo.HasAttachments == true)
              {
                // If attachments are enabled in the FeatureLayer's FeatureService, set up the properties
                // of the AttachmentEditor.
                AttachmentEditor1.FeatureLayer = myFeatureLayer;
                AttachmentEditor1.Filter = "Image Files|*.jpg;*.gif;*.png;*.bmp|Adobe PDF Files (.pdf)|*.pdf";
                AttachmentEditor1.FilterIndex = 1;
                AttachmentEditor1.Multiselect = true;
                AttachmentEditor1.Visibility = Windows.Visibility.Visible;
                
                // Add the FeatureLayer.MouseLeftButtonUp Event handler to allow users to click on a 
                // Graphic and display any attachment information.
                myFeatureLayer.MouseLeftButtonUp += myFeatureLayer_MouseLeftButtonUp;
              }
            }
            
            private void myFeatureLayer_MouseLeftButtonUp(object sender, ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs e)
            {
              // This function obtains the FeatureLayer, loops through all of the Graphic features and
              // un-selects them. Then for the Graphic for which the user clicked with the mouse select
              // it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              // downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              // Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = sender as ESRI.ArcGIS.Client.FeatureLayer;
              
              // Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              for (int i = 0; i &lt; myFeatureLayer.SelectionCount; i++)
              {
                myFeatureLayer.SelectedGraphics.ToList()[i].UnSelect();
              }
              
              // Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select();
              
              // Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              // to update with any attachments currently associated with the Graphic.
              AttachmentEditor1.GraphicSource = e.Graphic;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function is the main driver for the sample code. It creates a FeatureLayer dynamically
              ' and adds it to the Map Control. The FeatureLayer.Initialized Event handler is dynamically 
              ' wired-up and activated when the FeatureLayer is added to the Map.
              
              ' Create a new FeatureLayer using the Url text string supplied by the user.
              Dim myFeatureLayer As New ESRI.ArcGIS.Client.FeatureLayer
              myFeatureLayer.Url = TextBox_FeatureLayerUrl.Text
              
              ' Add the FeatureLayer to the Map.
              Map1.Layers.Add(myFeatureLayer)
              
              ' Create the FeatureLayer.Intialized Event handler. It will be invoked automatically
              ' when the FeatureLayer is added to the Map Control.
              AddHandler myFeatureLayer.Initialized, AddressOf myFeatureLayer_Initialized
            End Sub
            
            Private Sub myFeatureLayer_Initialized(ByVal sender As Object, ByVal e As EventArgs)
              
              ' This function executes as a result of the FeatureLayer being initialized for the first time.
              ' If FeatureLayer suppports having attachments in the FeatureService, set the properties on
              ' the AttachmentEditor Control and wire-up the FeatureLayer.MouseLeftButtonUp Event handler
              ' which will allow users to click on a Graphic and display any attachment information.
              
              ' Obtain the FeatureLayer from the sender argument.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = TryCast(sender, ESRI.ArcGIS.Client.FeatureLayer)
              
              ' Get a FeatureService.FeatureLayerInfo object from the FeatureLayer.
              Dim myFeatureLayerInfo As ESRI.ArcGIS.Client.FeatureService.FeatureLayerInfo = myFeatureLayer.LayerInfo
              
              ' Display if attachments have been enabled in the TextBlock.
              TextBlock_FeatureLayerLayerInfoHasAttachments.Text = myFeatureLayerInfo.HasAttachments.ToString
              TextBlock_FeatureLayerLayerInfoHasAttachments.Visibility = Windows.Visibility.Visible
              
              If myFeatureLayerInfo.HasAttachments = True Then
                
                ' If attachments are enabled in the FeatureLayer's FeatureService, set up the properties
                ' of the AttachmentEditor.
                AttachmentEditor1.FeatureLayer = myFeatureLayer
                AttachmentEditor1.Filter = "Image Files|*.jpg;*.gif;*.png;*.bmp|Adobe PDF Files (.pdf)|*.pdf"
                AttachmentEditor1.FilterIndex = 1
                AttachmentEditor1.Multiselect = True
                AttachmentEditor1.Visibility = Windows.Visibility.Visible
                
                ' Add the FeatureLayer.MouseLeftButtonUp Event handler to allow users to click on a 
                ' Graphic and display any attachment information.
                AddHandler myFeatureLayer.MouseLeftButtonUp, AddressOf myFeatureLayer_MouseLeftButtonUp
                
              End If
              
            End Sub
              
            Private Sub myFeatureLayer_MouseLeftButtonUp(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs)
              
              ' This function obtains the FeatureLayer, loops through all of the Graphic features and
              ' un-selects them. Then for the Graphic for which the user clicked with the mouse select
              ' it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              ' downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              ' Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = TryCast(sender, ESRI.ArcGIS.Client.FeatureLayer)
              
              ' Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              For i As Integer = 0 To myFeatureLayer.SelectionCount - 1
                myFeatureLayer.SelectedGraphics.ToList()(i).UnSelect()
              Next i
              
              ' Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select()
              
              ' Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              ' to update with any attachments currently associated with the Graphic.
              AttachmentEditor1.GraphicSource = e.Graphic
              
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.GraphicSource">
            <summary>
            Gets or sets the Graphic source of the FeatureLayer for the AttachmentEditor.
            </summary>
            <remarks>
            <para>
            It is the AttachmentEditor.GraphicSource Property that causes the AttachmentEditor to make a call to the ArcGIS 
            Server <b>FeatureServer</b> to see if any existing attachments are associated with a specific Graphic in the 
            FeatureLayer stored in the backend database. If any attachments are found to be associated with a Graphic in 
            the FeatureLayer, they will be listed in the ListBox portion of the control. For each attachment that is listed 
            in the ListBox of the AttachmentEditor, users can click on the hyperlink with the attachment filename to use the 
            Microsoft File Download dialog to save the file on the local machine. Attachments listed in the ListBox can also 
            be deleted from the backend ArcGIS Server FeatureService by clicking the red X next to the attachment name. When 
            a Graphic is associated with the AttachmentEditor.GraphicSource Property the <b>Add</b> button of the 
            AttachmentEditor becomes enabled. The <b>Add</b> button allows users on the client machine to upload files on the 
            local computer to the ArcGIS Server <b>FeatureServer</b> backend database via the Microsoft OpenFileDialog dialog.
            </para>
            <para>
            Obtaining a Graphic feature from the FeatureLayer to be used as the AttachmentEditor.GraphicSource is typically 
            obtained by a Property on the FeatureLayer such as: 
            <list type="bullet">
              <item><see cref="P:ESRI.ArcGIS.Client.GraphicsLayer.Graphics">FeatureLayer.Graphics</see></item>
              <item><see cref="P:ESRI.ArcGIS.Client.GraphicsLayer.SelectedGraphics">FeatureLayer.SelectedGraphics</see></item>
            </list>
            or via an Event on the FeatureLayer such as:
            <list type="bullet">
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseEnter">FeatureLayer.MouseEnter</see></item>
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseLeave">FeatureLayer.MouseLeave</see></item>
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseLeftButtonDown">FeatureLayer.MouseLeftButtonDown</see></item>
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseLeftButtonUp">FeatureLayer.MouseLeftButtonUp</see></item>
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseMove">FeatureLayer.MouseMove</see></item>
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseRightButtonDown">FeatureLayer.MouseRightButtonDown</see></item>
              <item><see cref="E:ESRI.ArcGIS.Client.GraphicsLayer.MouseRightButtonUp">FeatureLayer.MouseRightButtonUp</see></item>
            </list>
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            This sample code shows setting the AttachmentEditor.GraphicSource two different ways. One way uses the 
            ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs input argument of the FeatureLayer.MouseLeftButtonUp Event 
            to attach the Graphic to the AttachmentEditor.GraphicSource. The other way obtains the Graphic by iterating 
            over the GraphicCollection from a user choice of selecting the objectid value in a ListBox to set the 
            AttachmentEditor.GraphicSource:
            <list type="number">
              <item>
              Click on the Map to select a Graphic and add a few Attachments using the AttachmentEditor Control. Repeat 
              this step for several Graphics.
              </item>
              <item>
              Then Click the 'Load the objectid of Graphic with Attachments in the ListBox' button to list all of the 
              Graphic 'objectid' values that have Attachments in the ListBox for all Graphics in the current Map's Extent.
              </item>
              <item>
              Finally, Click on the 'objectid' string in the ListBox and the associated Graphic will be selected in the 
              Map and will automatically display it's Attachment information in the AttachmentEditor Control.
              </item>
            </list>
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Demonstrating setting the AttachmentEditor.GraphicSource using two alternative ways." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor.GraphicSource.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="189" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                     Width="760" TextWrapping="Wrap" Margin="12,12,0,0" 
                     Text="This sample code shows setting the AttachmentEditor.GraphicSource two different ways. One way uses 
                     the ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs input argument of the FeatureLayer.MouseLeftButtonUp 
                     Event to attach the Graphic to the AttachmentEditor.GraphicSource. The other way obtains the Graphic by 
                     iterating over the GraphicCollection from a user choice of selecting the objectid value in a ListBox to 
                     set the AttachmentEditor.GraphicSource:
                     1. Click on the Map to select a Graphic and add a few Attachments using the AttachmentEditor Control. 
                     Repeat this step for several Graphics.
                     2. Then Click the 'Load the objectid of Graphic with Attachments in the ListBox' button to list all of 
                     the Graphic 'objectid' values that have Attachments in the ListBox for all Graphics in the current 
                     Map's Extent.
                     3. Finally, Click on the 'objectid' string in the ListBox and the associated Graphic will be selected in 
                     the Map and will automatically display it's Attachment information in the AttachmentEditor Control." /&gt;
                     
              &lt;!-- 
              Add a Map control with an ArcGISTiledMapeServiceLayer and a FeatureLayer. It is important to 
              provide a Name for the Map Control as this will be used by the AttachmentEditor Control.
              Define and initial Extent for the map.
              --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,225,0,0" Name="MyMap" 
                      VerticalAlignment="Top" Height="375" Width="418" 
                        Extent="-13629929,4545159,-13627707,4547153"&gt;
              
                &lt;!-- Add a backdrop ArcGISTiledMapServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer 
                          Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
                
                &lt;!-- 
                The FeatureLayer is based upon an ArcGIS Server 'FeatureServer' service not a 'MapServer' service.
                It is important to provide an ID value as this will be used for Binding in the AttachementEditor.
                The MouseLeftButtonUp Event handler has been defined for the FeatureLayer. In order to improve
                performance of the example code a Where clause was used to restrict the amount of Graphic features
                returned from the FeatureLayer FeatureService. Setting the Mode Property equal to OnDemand also 
                helps to improve performance by further restricting the returned Graphc features to only those that
                are visible in the current Map.Extent.
                --&gt;
                &lt;esri:FeatureLayer ID="IncidentsLayer"
                       Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0"
                       MouseLeftButtonUp="FeatureLayer_MouseLeftButtonUp" AutoSave="False"                  
                       DisableClientCaching="True" OutFields="*" Mode="OnDemand" 
                       Where="district = '8' AND req_type = 'Damaged Property'"/&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;sdk:Label Height="28" HorizontalAlignment="Left" Margin="440,207,0,0" Name="Label2" 
                         VerticalAlignment="Top" Width="290" Content="The Attachment Editor:"/&gt;
              
              &lt;!--
              Add an AttachmentEditor. Provide a x:Name for the AttachmentEditor so that it can be used in the 
              code-behind file. The FeatureLayer Property is bound to the 'IncidentLayer' of the Map Control.
              Only one group of Filter types are used (you can have multiple file extensions in a group) to drive 
              the OpenFileDialog. This AttachmentEditor will only allow the uploading of Image files. The 
              FilterIndex shows the first group of Filter Types in the OpenFileDialog dropdown list. Only allow 
              the user to upload (i.e. Add) one file at a time using the OpenFileDialog with the Multiselect set 
              to False. 
              --&gt;
              &lt;esri:AttachmentEditor x:Name="MyAttachmentEditor" VerticalAlignment="Top" Margin="436,225,0,0" 
                                       Background="LightGoldenrodYellow" Width="352" Height="110" HorizontalAlignment="Left"                              
                                       FeatureLayer="{Binding Layers[IncidentsLayer], ElementName=MyMap}" 
                                       Filter="Image Files|*.jpg;*.gif;*.png;*.bmp" 
                                       FilterIndex="1" Multiselect="False"&gt;
              &lt;/esri:AttachmentEditor&gt;
              
              &lt;!-- 
              Add a Button to perform the work of looping through all of the Graphics in the current Map.Extent, 
              obtaining which Graphics have associated Attachments, and display the 'objectid' values of those
              Graphics in the ListBox. The Click Event handler is wired up for use in the code-behind. 
              --&gt;
              &lt;Button  Content="Load the objectid of Graphic with Attachments in the ListBox" Height="35" 
                      HorizontalAlignment="Left" Margin="436,361,0,0" Name="Button1" 
                      VerticalAlignment="Top" Width="352" Click="Button1_Click" &gt;
              &lt;/Button&gt;
              
              &lt;sdk:Label Height="28" HorizontalAlignment="Left" Margin="436,419,0,0" Name="Label1" 
                         VerticalAlignment="Top" Width="336"
                         Content="Graphics object in the Map with Attachments:"/&gt;
              
              &lt;!--
              Add a ListBox to display any Graphic 'objectid' values in the current Map.Extent that have
              Attachments associated with them. If no Graphic features in the current Map.Extent have 
              Attachments nothing will be displayed. You may need to add some Attachments to the Graphics
              in order to see the full functionality of the example code. The SelectionChanged Event handler
              is wired up for use in the code-behind.
              --&gt;
              &lt;ListBox Height="145" HorizontalAlignment="Left" Margin="436,443,0,0" Name="ListBox1" 
                       VerticalAlignment="Top" Width="352"
                       SelectionChanged="ListBox1_SelectionChanged" /&gt;
              
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            // The purpose of this example code is to show that the AttachmentEditor.GraphicSource can be set a few
            // different ways: 
            // (1) via user interaction with the Map 
            // (2) via user interaction with non-Map controls
            // The important thing to learn is that a valid Graphic needs to be set for the 
            // AttachmentEditor.GraphicSource, irrespective of how it is obtained.
              
            private void ListBox1_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
            {
              // This function loops through all of the Graphics in the FeatureLayer and unselects them. Then
              // for the 'objectid' value that was selected in the ListBox, select it to show visually on the
              // Map and set the AttachmentEditor.GraphicSource Property.
              
              // Get the FeatureLayer from the XAML.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = (ESRI.ArcGIS.Client.FeatureLayer)MyMap.Layers["IncidentsLayer"];
              
              // Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              for (int i = 0; i &lt; myFeatureLayer.SelectionCount; i++)
              {
                myFeatureLayer.SelectedGraphics.ToList()[i].UnSelect();
              }
              
              // Obtain the GraphicsCollection from the FeatureLayer.
              ESRI.ArcGIS.Client.GraphicCollection myGraphicCollection = myFeatureLayer.Graphics;
              
              // Another way to loop through all of the Graphics. 
              foreach (ESRI.ArcGIS.Client.Graphic myGraphic in myGraphicCollection)
              {
                // This time find the specific Graphic that has a matching 'objectid' value as chosen by 
                // the user in the ListBox, select it for visual display in the Map and set the 
                // AttachmentEditor.GraphicSource Property.
                String myString = myGraphic.Attributes["objectid"].ToString();
                if (myString == (ListBox1.SelectedItem.ToString()))
                {
                  myGraphic.Select();
                  MyAttachmentEditor.GraphicSource = myGraphic;
                  break;
                }
              }
            }
              
            private void Button1_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function scans through all of the Graphics of the FeatureLayer in the current Map.Extent
              // and uses an Action Delegate to perform a FeatureLayer.QueryAttachmentInfos Method call to list
              // all of the Graphic 'objectid' values in a ListBox for with there are associated Attachments.
              
              // Clear out the ListBox for multiple runs
              ListBox1.Items.Clear();
              
              // Get the FeatureLayer that was defined in XAML.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = (ESRI.ArcGIS.Client.FeatureLayer)MyMap.Layers["IncidentsLayer"];
              
              // Get the GraphicCollection from the FeatureLayer
              ESRI.ArcGIS.Client.GraphicCollection myGraphicCollection = myFeatureLayer.Graphics;
              
              // Loop through each Graphic in the GraphicCollection
              foreach (ESRI.ArcGIS.Client.Graphic myGraphic in myGraphicCollection)
              {
                // Define the Action Delegate
                Action&lt;System.Collections.Generic.IEnumerable&lt;ESRI.ArcGIS.Client.FeatureService.AttachmentInfo&gt;&gt; myAction = null;
                myAction = PopulateTheListBoxWith_objectid_Values;
                
                // Use the FeatureLayer.QueryAttachmentInfos Method to call the PopulateTheListBoxWith_objectid_Values
                // Function.
                // SPECIAL NOTE: 
                // By using an Action Delegate, the processing of the request does not occur until this Button1_Click
                // Function has completely finished processing (this means the For/Each loop will completely process 
                // BEFORE any calls to the PopulateTheListBoxWith_objectid_Values Function begin). Set some breakpoints
                // to see how this operation occurs. As a result of the 'queuing up' of all the 
                // PopulateTheListBoxWith_objectid_Values Function calls, there is no way to know exactly when the 
                // PopulateTheListBoxWith_objectid_Values Function calls are going to finish processing since they 
                // do not fire sequentially from within the For/Each loop. 
                myFeatureLayer.QueryAttachmentInfos(myGraphic, myAction, null);
              }
            }
            
            public void PopulateTheListBoxWith_objectid_Values(System.Collections.Generic.IEnumerable&lt;ESRI.ArcGIS.Client.FeatureService.AttachmentInfo&gt; myAttachmentsInfos)
            {
              // This function gets called as a result of an Action Delegate. An 
              // IEnumerable(Of ESRI.ArcGIS.Client.FeatureService.AttachmentInfo) objects are available to be 
              // interrogated. If there is a valid AttachmentInfo object use the .Split String operation on
              // the AttachmentInfo.Uri Property to extract out the 'objectid' value of the Graphic in the 
              // FeatureLayer. For more information on the specific Uri structure see the ArcGIS Server REST 
              // API document called "Attachment - Feature Service":
              // http://sampleserver3.arcgisonline.com/ArcGIS/SDK/REST/fsattachment.html
              // Once the 'objectid' value is obtained, add it to the ListBox so that users can click on it
              // to highlight the Graphic feature in the Map and set the AttachmentEditor.GraphicSource Property.
              
              // Example of information of an AttachmentsInfo object:
              // ContentType = "image/jpeg"
              // Delete = {ESRI.ArCGIS.Client.DelegateCommand}
              // ID = 467
              // Name = "Chrysanthemum.jpg"
              // Size = 87396
              // Uri = {http://sampleserver3/arcgisonline/com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/121979/attachments/467}
              
              // Loop through the IEnumerable(Of ESRI.ArcGIS.Client.FeatureService.AttachmentInfo) objects
              foreach (ESRI.ArcGIS.Client.FeatureService.AttachmentInfo oneAttchmentInfo in myAttachmentsInfos)
              {
                // Tokenize the AttachmentInfo.Uri value into an array of String objects.
                string[] parts = oneAttchmentInfo.Uri.ToString().Split('/');
                
                // Get the 'objectid' value for a Graphic Feature from the AttachmentInfo.Uri.
                string my_objectid = parts[parts.Length - 3].ToString();
                
                // Only add unique occurrences of the 'objectid' value to the ListBox. There could me
                // multiple attachments per Graphic Feature.
                if (!(ListBox1.Items.Contains(my_objectid)))
                {
                  ListBox1.Items.Add(my_objectid);
                }
              }
            }
            
            private void FeatureLayer_MouseLeftButtonUp(object sender, ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs e)
            {
              // This function obtains the FeatureLayer, loops through all of the Graphic features and
              // un-selects them. Then for the Graphic for which the user clicked with the mouse select
              // it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              // downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              // Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = sender as ESRI.ArcGIS.Client.FeatureLayer;
              
              // Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              for (int i = 0; i &lt; myFeatureLayer.SelectionCount; i++)
              {
                myFeatureLayer.SelectedGraphics.ToList()[i].UnSelect();
              }
              
              // Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select();
              
              // Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              // to update with any attachments currently associated with the Graphic.
              MyAttachmentEditor.GraphicSource = e.Graphic;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            ' The purpose of this example code is to show that the AttachmentEditor.GraphicSource can be set a few
            ' different ways: 
            ' (1) via user interaction with the Map 
            ' (2) via user interaction with non-Map controls
            ' The important thing to learn is that a valid Graphic needs to be set for the 
            ' AttachmentEditor.GraphicSource, irrespective of how it is obtained.
            
            Private Sub ListBox1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
              
              ' This function loops through all of the Graphics in the FeatureLayer and unselects them. Then
              ' for the 'objectid' value that was selected in the ListBox, select it to show visually on the
              ' Map and set the AttachmentEditor.GraphicSource Property.
              
              ' Get the FeatureLayer from the XAML.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = MyMap.Layers("IncidentsLayer")
              
              ' Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              For i As Integer = 0 To myFeatureLayer.SelectionCount - 1
                myFeatureLayer.SelectedGraphics.ToList()(i).UnSelect()
              Next i
              
              ' Obtain the GraphicsCollection from the FeatureLayer.
              Dim myGraphicCollection As ESRI.ArcGIS.Client.GraphicCollection = myFeatureLayer.Graphics
              
              ' Another way to loop through all of the Graphics. 
              For Each myGraphic As ESRI.ArcGIS.Client.Graphic In myGraphicCollection
                
                ' This time find the specific Graphic that has a matching 'objectid' value as chosen by 
                ' the user in the ListBox, select it for visual display in the Map and set the 
                ' AttachmentEditor.GraphicSource Property.
                If myGraphic.Attributes.Item("objectid") = ListBox1.SelectedItem.ToString Then
                  myGraphic.Select()
                  MyAttachmentEditor.GraphicSource = myGraphic
                  Exit For
                End If
              Next
              
            End Sub
            
            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function scans through all of the Graphics of the FeatureLayer in the current Map.Extent
              ' and uses an Action Delegate to perform a FeatureLayer.QueryAttachmentInfos Method call to list
              ' all of the Graphic 'objectid' values in a ListBox for with there are associated Attachments.
              
              ' Clear out the ListBox for multiple runs
              ListBox1.Items.Clear()
              
              ' Get the FeatureLayer that was defined in XAML.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = MyMap.Layers("IncidentsLayer")
              
              ' Get the GraphicCollection from the FeatureLayer
              Dim myGraphicCollection As ESRI.ArcGIS.Client.GraphicCollection = myFeatureLayer.Graphics
              
              ' Loop through each Graphic in the GraphicCollection
              For Each myGraphic As ESRI.ArcGIS.Client.Graphic In myGraphicCollection
                
                ' Define the Action Delegate
                Dim myAction As Action(Of System.Collections.Generic.IEnumerable(Of ESRI.ArcGIS.Client.FeatureService.AttachmentInfo))
                myAction = AddressOf PopulateTheListBoxWith_objectid_Values
                
                ' Use the FeatureLayer.QueryAttachmentInfos Method to call the PopulateTheListBoxWith_objectid_Values
                ' Function.
                ' SPECIAL NOTE: 
                ' By using an Action Delegate, the processing of the request does not occur until this Button1_Click
                ' Function has completely finished processing (this means the For/Each loop will completely process 
                ' BEFORE any calls to the PopulateTheListBoxWith_objectid_Values Function begin). Set some breakpoints
                ' to see how this operation occurs. As a result of the 'queuing up' of all the 
                ' PopulateTheListBoxWith_objectid_Values Function calls, there is no way to know exactly when the 
                ' PopulateTheListBoxWith_objectid_Values Functoion calls are going to finish processing since they 
                ' do not fire sequentially from within the For/Each loop. 
                myFeatureLayer.QueryAttachmentInfos(myGraphic, myAction, Nothing)
                
              Next
              
            End Sub
            
            Public Sub PopulateTheListBoxWith_objectid_Values(ByVal myAttachmentsInfos As System.Collections.Generic.IEnumerable(Of ESRI.ArcGIS.Client.FeatureService.AttachmentInfo))
              
              ' This function gets called as a result of an Action Delegate. An 
              ' IEnumerable(Of ESRI.ArcGIS.Client.FeatureService.AttachmentInfo) objects are available to be 
              ' interrogated. If there is a valid AttachmentInfo object use the .Split String operation on
              ' the AttachmentInfo.Uri Property to extract out the 'objectid' value of the Graphic in the 
              ' FeatureLayer. For more information on the specific Uri structure see the ArcGIS Server REST 
              ' API document called "Attachment - Feature Service":
              ' http://sampleserver3.arcgisonline.com/ArcGIS/SDK/REST/fsattachment.html
              ' Once the 'objectid' value is obtained, add it to the ListBox so that users can click on it
              ' to highlight the Graphic feature in the Map and set the AttachmentEditor.GraphicSource Property.
              
              ' Example of information of an AttachmentsInfo object:
              ' ContentType = "image/jpeg"
              ' Delete = {ESRI.ArCGIS.Client.DelegateCommand}
              ' ID = 467
              ' Name = "Chrysanthemum.jpg"
              ' Size = 87396
              ' Uri = {http://sampleserver3/arcgisonline/com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/121979/attachments/467}
              
              ' Loop through the IEnumerable(Of ESRI.ArcGIS.Client.FeatureService.AttachmentInfo) objects
              Dim oneAttchmentInfo As ESRI.ArcGIS.Client.FeatureService.AttachmentInfo
              For Each oneAttchmentInfo In myAttachmentsInfos
                
                ' Tokenize the AttachmentInfo.Uri value into an array of String objects.
                Dim parts As String() = oneAttchmentInfo.Uri.ToString.Split("/")
                
                ' Get the 'objectid' value for a Graphic Feature from the AttachmentInfo.Uri.
                Dim my_objectid As String = parts(parts.Length - 3).ToString
                
                ' Only add unique occurrences of the 'objectid' value to the ListBox. There could me
                ' multiple attachments per Graphic Feature.
                If Not ListBox1.Items.Contains(my_objectid) Then
                  ListBox1.Items.Add(my_objectid)
                End If
              Next
              
            End Sub
            
            Private Sub FeatureLayer_MouseLeftButtonUp(ByVal sender As System.Object, ByVal e As ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs)
              
              ' This function obtains the FeatureLayer, loops through all of the Graphic features and
              ' un-selects them. Then for the Graphic for which the user clicked with the mouse select
              ' it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              ' downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              ' Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = TryCast(sender, ESRI.ArcGIS.Client.FeatureLayer)
              
              ' Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              For i As Integer = 0 To myFeatureLayer.SelectionCount - 1
                myFeatureLayer.SelectedGraphics.ToList()(i).UnSelect()
              Next i
              
              ' Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select()
            
              ' Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              ' to update with any attachments currently associated with the Graphic.
              MyAttachmentEditor.GraphicSource = e.Graphic
            
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.ItemTemplate">
            <summary> 
            Gets or sets the 
            <a href="http://msdn.microsoft.com/en-us/library/system.windows.datatemplate(v=VS.95).aspx" target="_blank">DataTemplate</a> 
            used for the ListBox sub-component UI Element of the AttachmentEditor control. The ListBox sub-component UI 
            Element typically has implicit Binding to the Properties of the 
            <see cref="T:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo">ESRI.ArcGIS.Client.FeatureService.AttachmentInfo</see> 
            Class to control its behavior. 
            </summary>
            <remarks>
            <para>
            Changing the core default behavior and appearance of the ListBox sub-component of the AttachmentEditor Control 
            can be modified using a DataTemplate via the AttachmentEditor.ItemTemplate Property and writing your own custom 
            code when necessary. When defining the DataTemplate, the Binding Properties that developers usually want to use 
            to control the behavior of the ListBox sub-component of the AttachmentEditor are based upon those in the 
            ESRI.ArcGIS.Client.FeatureService.AttachmentInfo Class.
            </para>
            <para>
            If only the superficial appearance of the AttachmentEditor Control is desired to be modified (i.e. Height, 
            Width, Background, FontSize, etc.) consider using the numerous inherited Properties from 
            System.Windows.FrameworkElement, System.Windows.UIElement, and System.Windows.Controls. 
            </para>
            <para>
            Note: you cannot change the core behavior of the sub-components (i.e. Button, ListBox, etc.) of the 
            AttachmentEditor Control using standard Properties or Methods alone. To change the core behavior of the 
            sub-components and their appearance of the Control, developers can modify the Control Template in XAML and the 
            associated code-behind file. The easiest way to modify the UI sub-components is using Microsoft Expression 
            Blend. Then developers can delete/modify existing or add new sub-components in Visual Studio to create a truly 
            customized experience. A general approach to customizing a Control Template is discussed in the ESRI blog 
            entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>.
            </para>
            <para>
            The AttachmentEditor is essentially made of two core parts: an Add button and a ListBox that displays 
            information about attachments associated with a Graphic element of a FeatureLayer. The attachments are stored 
            in the backend database of a FeatureLayer on an ArcGIS Server FeatureServer. The default AttachmentEditor will 
            display a hyperlink and a delete button (via a red X) for each attachment associated with Graphic feature in 
            the FeatureLayer as a ListBox item. See the following screen shot that depicts the two core parts of the 
            AttachmentEditor Control.
            </para>
            <img border="0" alt="Core functionality parts of the Attachment Editor." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor.ItemTemplate.png"/>
            <para>
            The power of using a DataTemplate via XAML to control the behavior and appearance the ListBox sub-component of 
            the AttachmentEditor is great but comes at the price of understanding the complexity of Binding and having an 
            artistic flair to make a nice UI design. Developers can control the contents of the ListBox sub-component UI 
            Element via a Datatemplate of the AttachmentEditor using the AttachmentEditor.ItemTempalte Property. Developers 
            cannot control the Add button of the AttachmentEditor using a DataTemplate. In most circumstances the ListBox 
            sub-component UI Element that is customized in the DataTemplate will have Binding to the AttachmentEditors 
            internal usage of the ESRI.ArcGIS.Client.FeatureService.AttachmentInfo Class Properties. There are six 
            AttachmentInfo Properties:
            <list type="bullet">
              <item><see cref="P:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo.ContentType">ContentType</see></item>
              <item><see cref="P:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo.Delete">Delete</see></item>
              <item><see cref="P:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo.ID">ID</see></item>
              <item><see cref="P:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo.Name">Name</see></item>
              <item><see cref="P:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo.Size">Size</see></item>
              <item><see cref="P:ESRI.ArcGIS.Client.FeatureService.AttachmentInfo.Uri">Uri</see></item>
            </list>
            The Binding syntax for the ListBox sub-component UI Element of the AttachmentEditor typically follows the 
            pattern of:
            <code>
            "{Binding &lt;PropertyName&gt;}"
            </code> 
            Where &lt;PropertyName&gt; is the name of a FeatureService.AttachmentInfo Property (ex: Name or Uri). Note 
            when no source is specified for the Binding, it is implicitly implied that it is the FeatureService.AttachmentInfo 
            Class. If developers desire to use 
            <a href="http://msdn.microsoft.com/en-us/library/cc278072(v=VS.95).aspx" target="_blank">Data Binding</a> to 
            other objects they will be responsible for specifying the correct binding source. The code example in this 
            document provides an example of Binding the ListBox sub-component UI Element of the AttachmentEditor to both 
            FeatureService.AttachmentInfo Properties and user defined static sources.
            </para>
            <para>
            The FeatureService.AttachmentInfo.Delete Property is a unique in that it is not a simple data Type (or does 
            not easily translate to a simple data Type via an internal converter). The FeatureService.AttachmentInfo.Delete 
            Property returns a 
            <a href="http://msdn.microsoft.com/en-us/library/ms616869(v=VS.95).aspx" target="_blank">System.Windows.Input.ICommand</a> 
            Object. The trick to Binding to this Property is to Bind it to the 
            <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase.command(v=VS.95).aspx" target="_blank">ButtonBase.Command</a> 
            Property of the various UI Elements (ex: Button, HyperlinkButton, RepeatButton, ToggleButton, etc) to the 
            desired UI Element. The code example in this document demonstrates Binding a simple Button’s Command Property 
            to the FeatureService.AttachmentInfo.Delete Property to delete attachments from the AttachmentEditor and the 
            FeatureLayers FeatureService backend database. 
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            When the Map loads click on a point feature in the FeatureLayer to select the Graphic. Then use the 
            AttachmentEditor to add, delete, and download files. Hover the mouse cursor over the attachment image to 
            display a Microsoft ToolTip containing metadata about the attachment.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Demonstrating an AttachmentEditor that has been customized via a DataTemplate." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.AttachmentEditor.ItemTemplate1.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
              
              &lt;!--
              The Grid.Resources section is a great place to define a DataTemplate used by the AttachmentEditor
              Control. The x:Key is needed to reference the DataTemplate in the AttachmentEditor.ItemTemplate
              Property. SPECIAL NOTE: The binding that occurs to the UI Elements in the DataTemplate use 
              Properties from the ESRI.ArcGIS.Client.FeatureService.AttachmentInfo Class (additional comments
              will be added to point out which Properties are used).
              --&gt;
              &lt;Grid.Resources&gt;
                
                &lt;!--
                Define a simple StaticResource that will be displayed as a visual UI Element of the 
                ListBox portion of the AttachmentEditor. This will help illustrate one way to perform
                Binding. You will need to add the following XML namespace to use 'sys' variables:
                xmlns:sys="clr-namespace:System;assembly=mscorlib"
                --&gt;
                &lt;sys:String x:Key="SingleString"&gt;Visual appearance of the attachment:&lt;/sys:String&gt;
            
                &lt;!-- Define a DataTemplate and use the x:Key to reference it in other parts of XAML. --&gt;
                &lt;DataTemplate x:Key="AEItemTemplate"&gt;
                  &lt;Grid Margin="3"&gt;
                    &lt;StackPanel&gt;
                    
                      &lt;!--
                      Create a TextBlock that informs the user they are seeing a visual depiction of the
                      attachment associated with the Graphic in the FeatureLayer. Note how the 
                      Binding.Source Property needs to be set in order to use a custom object. This 
                      syntax is quite different from the other Bindings that occur in which it is
                      automatically implied in the Binding that we are accessing a Property of the
                      FeatureService.AttachmentInfo Class.
                      --&gt;
                      &lt;TextBlock Margin="0,0" Text="{Binding Source={StaticResource SingleString}}" /&gt;
                        
                      &lt;StackPanel Orientation="Horizontal"&gt;
                        
                        &lt;!-- 
                        Attachments that are images will be displayed in the ListBox of the AttachmentEditor. 
                        Note: The Image.Source Property use Binding to the AttachmentInfo.Uri Property. 
                        --&gt;
                        &lt;Image Source="{Binding Uri}" MaxWidth="75" MaxHeight="75" Stretch="Uniform"&gt;
                          
                          &lt;!--
                          A Microsoft ToolTip Control will be used such that when the user hovers the Mouse
                          Cursor over the image, additional metadata information from the AttachmentInfo Class
                          associated internally with the AttachmentEditor will be displayed.
                          --&gt;
                          &lt;ToolTipService.ToolTip&gt;
                            &lt;Grid&gt;
                              &lt;Grid.RowDefinitions&gt;
                                &lt;RowDefinition Height="Auto" /&gt;
                                &lt;RowDefinition Height="Auto" /&gt;
                                &lt;RowDefinition Height="Auto" /&gt;
                                &lt;RowDefinition Height="Auto" /&gt;
                              &lt;/Grid.RowDefinitions&gt;
                              &lt;Grid.ColumnDefinitions&gt;
                                &lt;ColumnDefinition Width="Auto" /&gt;
                                &lt;ColumnDefinition Width="Auto" /&gt;
                              &lt;/Grid.ColumnDefinitions&gt;
                              
                              &lt;!-- 
                              Note: The TextBlock.Text Property use Binding to the AttachmentInfo.Name Property to
                              enhance the metadata information about the image attachment displayed in the ToolTip. 
                              --&gt;
                              &lt;TextBlock Text="Name: " Margin="10,0,0,0" 
                                         HorizontalAlignment="Right" VerticalAlignment="Center" 
                                         Grid.Row="0" Grid.Column="0" /&gt;
                              &lt;TextBlock Text="{Binding Name}" Margin="5,0" MaxWidth="250" TextWrapping="Wrap" 
                                         Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" /&gt;
                              
                              &lt;!-- 
                              Note: The TextBlock.Text Property use Binding to the AttachmentInfo.Size Property to
                              enhance the metadata information about the image attachment displayed in the ToolTip. 
                              --&gt;
                              &lt;TextBlock Text="Size: " Margin="10,0,0,0" 
                                         HorizontalAlignment="Right" 
                                         Grid.Row="1" Grid.Column="0" /&gt;
                              &lt;TextBlock Text="{Binding Size}" Margin="5,0" MaxWidth="250" 
                                         TextWrapping="Wrap" Grid.Row="1" Grid.Column="1" /&gt;
                      
                              &lt;!-- 
                              Note: The TextBlock.Text Property use Binding to the AttachmentInfo.Uri Property to
                              enhance the metadata information about the image attachment displayed in the ToolTip. 
                              --&gt;
                              &lt;TextBlock Text="Uri: " Margin="10,0,0,0" 
                                         HorizontalAlignment="Right" 
                                         Grid.Row="2" Grid.Column="0" /&gt;
                              &lt;TextBlock Text="{Binding Uri}" Margin="5,0" MaxWidth="250" 
                                         TextWrapping="Wrap" Grid.Row="2" Grid.Column="1" /&gt;
                    
                              &lt;!-- 
                              Note: The TextBlock.Text Property use Binding to the AttachmentInfo.ContentType Property to
                              enhance the metadata information about the image attachment displayed in the ToolTip. 
                              --&gt;
                              &lt;TextBlock Text="Content Type: " Margin="10,0,0,0" 
                                         HorizontalAlignment="Right" 
                                         Grid.Row="3" Grid.Column="0" /&gt;
                              &lt;TextBlock Text="{Binding ContentType}" Margin="5,0" MaxWidth="250" 
                                         TextWrapping="Wrap" Grid.Row="3" Grid.Column="1" /&gt;
                            &lt;/Grid&gt;
                          &lt;/ToolTipService.ToolTip&gt;
                        &lt;/Image&gt;
                      &lt;/StackPanel&gt;
                      
                      &lt;StackPanel Orientation="Horizontal"&gt;
                      
                        &lt;!-- 
                        Display the filename of the image attachment just below the picture of the image in 
                        the ListBox of the AttachmentEditor. Note: The Hyperlink.Content uses Binding to the 
                        AttachmentInfo.Name Property and the Hyperlink.NavigateUri uses Binding to the 
                        AttachmentInfo.Uri Property. 
                        --&gt;
                        &lt;HyperlinkButton Content="{Binding Name}" NavigateUri="{Binding Uri}" TargetName="_blank" 
                                         HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,3,0,0" 
                                         FontFamily="Arial Black" FontSize="10" FontStyle="Italic" /&gt;
                          
                        &lt;!--
                        Provide the ability to Delete an image attachment from the AttachmentEditor and the 
                        FeatureLayer FeatureServer. It is the Button.Command Property that will have Binding
                        to the AttachmentInfo.Delete Property (which is a Type of ICommand).
                        --&gt;
                        &lt;Button Content="Delete" Command="{Binding Delete}" Width="60" Margin="5,5,5,5" 
                                        HorizontalAlignment="Center" VerticalAlignment="Center"/&gt;
                                    
                      &lt;/StackPanel&gt;
                      &lt;Border BorderThickness="1" BorderBrush="Black"&gt;&lt;/Border&gt;
                    &lt;/StackPanel&gt;
                  &lt;/Grid&gt;
                &lt;/DataTemplate&gt;
              &lt;/Grid.Resources&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="64" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                         Width="512" TextWrapping="Wrap" Margin="12,12,0,0" 
                         Text="When the Map loads click on a point feature in the FeatureLayer to select
                              the Graphic. Then use the AttachmentEditor to add, delete, and download files.
                              Hover the mouse cursor over the attachment image to display a Microsoft
                              ToolTip containing metadata about the attachment." /&gt;
                
              &lt;!-- 
              Add a Map control with an ArcGISTiledMapeServiceLayer and a FeatureLayer. It is important to 
              provide a Name for the Map Control as this will be used by the AttachmentEditor Control.
              Define and initial Extent for the map.
              --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,100,0,0" Name="MyMap" 
                        VerticalAlignment="Top" Height="375" Width="400" 
                        Extent="-13625087,4547888,-13623976,4548643"&gt;
                
                &lt;!-- Add a backdrop ArcGISTiledMapServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer 
                          Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /&gt;
                
                &lt;!-- 
                The FeatureLayer is based upon an ArcGIS Server 'FeatureServer' service not a 'MapServer' service.
                It is important to provide an ID value as this will be used for Binding in the AttachementEditor.
                The MouseLeftButtonUp Event handler has been defined for the FeatureLayer. 
                --&gt;
                &lt;esri:FeatureLayer ID="IncidentsLayer"
                       Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0"
                       MouseLeftButtonUp="FeatureLayer_MouseLeftButtonUp" AutoSave="False"                  
                       DisableClientCaching="True" OutFields="*" Mode="OnDemand" /&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!-- 
              Wrap the Attachment Editor inside of a Grid and other controls to provide a stylistic look 
              and to provide instructions to the user.
              --&gt;
              &lt;Grid HorizontalAlignment="Left" VerticalAlignment="Top" Margin="450,100,15,0" &gt;
                &lt;Rectangle Fill="BurlyWood" Stroke="Green"  RadiusX="15" RadiusY="15" Margin="0,0,0,5" &gt;
                  &lt;Rectangle.Effect&gt;
                    &lt;DropShadowEffect/&gt;
                  &lt;/Rectangle.Effect&gt;
                &lt;/Rectangle&gt;
                &lt;Rectangle Fill="#FFFFFFFF" Stroke="Aqua" RadiusX="5" RadiusY="5" Margin="10,10,10,15" /&gt;
                &lt;StackPanel Orientation="Vertical" HorizontalAlignment="Left"&gt;
                  &lt;TextBlock Text="Click on a point feature to select it, and click the 'Add' button to attach a file." 
                                 Width="275" TextAlignment="Left" Margin="20,20,20,5" TextWrapping="Wrap" FontWeight="Bold"/&gt;
                  
                  &lt;!--
                  Add an AttachmentEditor. Provide a x:Name for the AttachmentEditor so that it can be used in the 
                  code-behind file. The FeatureLayer Property is bound to the 'IncidentLayer' of the Map Control.
                  Only one group of Filter types are used (you can have multiple file extensions in a group) to drive the
                  OpenFileDialog. This AttachmentEditor will only allow the uploading of Image files. This is necessary 
                  because as part of the DataTemplate that will control the appearance and core behavior, the actual 
                  images will be displayed. The FilterIndex shows the first group of Filter Types in the OpenFileDialog 
                  dropdown list. Only allow the user to upload (i.e. Add) one file at a time using the OpenFileDialog
                  with the Multiselect set to False. An UploadFailed Event has been defined for the code-behind.
                  The appearance and core behavior of the ListBox sub-component of the AttachmentEditor is controlled 
                  by defining a DataTemplate (see above) and using it for the ItemTemplate Property. SPECIAL NOTE: The 
                  binding that occurs to the UI Elements in the DataTemplate use Properties from the 
                  ESRI.ArcGIS.Client.FeatureService.AttachmentInfo Class.
                  --&gt;
                  &lt;esri:AttachmentEditor x:Name="MyAttachmentEditor" VerticalAlignment="Top" Margin="20,5,20,20" 
                                       Background="LightGoldenrodYellow" Width="280" Height="300" HorizontalAlignment="Right"                              
                                       FeatureLayer="{Binding Layers[IncidentsLayer], ElementName=MyMap}" 
                                       Filter="Image Files|*.jpg;*.gif;*.png;*.bmp" 
                                       FilterIndex="1" Multiselect="False"
                                       UploadFailed="MyAttachmentEditor_UploadFailed"
                                       ItemTemplate="{StaticResource AEItemTemplate}"&gt;
                  &lt;/esri:AttachmentEditor&gt;
                &lt;/StackPanel&gt;
              &lt;/Grid&gt;
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void FeatureLayer_MouseLeftButtonUp(object sender, ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs e)
            {
              // This function obtains the FeatureLayer, loops through all of the Graphic features and
              // un-selects them. Then for the Graphic for which the user clicked with the mouse select
              // it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              // downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              // Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = sender as ESRI.ArcGIS.Client.FeatureLayer;
              
              // Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              for (int i = 0; i &lt; myFeatureLayer.SelectionCount; i++)
              {
                myFeatureLayer.SelectedGraphics.ToList()[i].UnSelect();
              }
              
              // Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select();
              
              // Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              // to update with any attachments currently associated with the Graphic.
              MyAttachmentEditor.GraphicSource = e.Graphic;
            }
            
            private void MyAttachmentEditor_UploadFailed(object sender, ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailedEventArgs e)
            {
              // Display any error messages that may occur if the AttachmentEditor fails to upload a file.
              MessageBox.Show(e.Result.Message);
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub FeatureLayer_MouseLeftButtonUp(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Client.GraphicMouseButtonEventArgs)
              
              ' This function obtains the FeatureLayer, loops through all of the Graphic features and
              ' un-selects them. Then for the Graphic for which the user clicked with the mouse select
              ' it and use that Graphic to set the AttachmentEditor.GraphicSource to enable uploading,
              ' downloading, and deleting attachment files on the ArcGIS Server backend database.
              
              ' Get the FeatureLayer from the sender object of the FeatureLayer.MouseLeftButtonUp Event.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = TryCast(sender, ESRI.ArcGIS.Client.FeatureLayer)
              
              ' Loop through all of the Graphics in the FeatureLayer and UnSelect them.
              For i As Integer = 0 To myFeatureLayer.SelectionCount - 1
                myFeatureLayer.SelectedGraphics.ToList()(i).UnSelect()
              Next i
              
              ' Select the Graphic from the e object which will change visibly on the Map via highlighting.
              e.Graphic.Select()
              
              ' Setting the AttachmentEditor.GraphicSource immediately causes the AttachmentEditor Control 
              ' to update with any attachments currently associated with the Graphic.
              MyAttachmentEditor.GraphicSource = e.Graphic
              
            End Sub
              
            Private Sub MyAttachmentEditor_UploadFailed(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailedEventArgs)
              ' Display any error messages that may occur if the AttachmentEditor fails to upload a file.
              MessageBox.Show(e.Result.Message)
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.Filter">
            <summary>
            Gets or sets a filter string that specifies the file types and descriptions
            to display in the System.Windows.Controls.OpenFileDialog.
            </summary>
            <value>
            A filter string that specifies the file types and descriptions to display in the OpenFileDialog.
            The default is <see cref="F:System.String.Empty"/>.
            </value>
            <exception cref="T:System.ArgumentException">
            The filter string does not contain at least one vertical bar (|).
            </exception>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.FilterIndex">
            <summary>
            Gets or sets the index of the selected item in the System.Windows.Controls.OpenFileDialog 
            filter drop-down list.
            </summary>
            <value>
            The index of the selected item in the System.Windows.Controls.OpenFileDialog 
            filter drop-down list. The default is 1.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The filter index is less than 1.
            </exception>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.Multiselect">
            <summary>
            Gets or sets a value that indicates whether the System.Windows.Controls.OpenFileDialog 
            allows users to select multiple files.
            </summary>
            <value>
            <c>true</c> if multiple selections are allowed; otherwise, <c>false</c>. The default is 
            </value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailed">
            <summary>
            Occurs when uploading an attachment to the server failed.
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.EndUpload">
            <summary>
            Occurs when uploading of an attachment to the server ends.
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.BeginUpload">
            <summary>
            Occurs when uploading of an attachment begins.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailedEventArgs">
            <summary>
            Event argument for the UploadFailed event.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.UploadFailedEventArgs.Result">
            <summary>
            Gets the result of upload failure.
            </summary>
            <value>The result.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.BeginUploadEventArgs">
            <summary>
            Event argument for the BeginUpload event.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.BeginUploadEventArgs.FileInfos">
            <summary>
            Gets information about the files being uploaded.
            </summary>
            <value>The file infos.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.BeginUploadEventArgs.Cancel">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:ESRI.ArcGIS.Client.Toolkit.AttachmentEditor.BeginUploadEventArgs"/> should be cancelled.
            </summary>
            <value><c>true</c> if cancel; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider">
            <summary>
            The TimeSlider is a utility Control that emits TimeExtent values typically for use with the Map Control 
            to enhance the viewing of geographic features that have attributes based upon Date/Time information.
            </summary>
            <remarks>
            <para>
            The TimeSlider Control is a User Interface (UI) control that looks and acts very similar to the buttons 
            that one would find on a DVD or MP3 player. The TimeSlider emits 
            <see cref="T:ESRI.ArcGIS.Client.TimeExtent">TimeExtent</see> values that are typically used in conjunction 
            with the Map Control to enhance the viewing of geographic features that have attributes based upon Date/Time 
            information. In most circumstances, the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeSlider.Value</see> Property is bound to the 
            <see cref="P:ESRI.ArcGIS.Client.Map.TimeExtent">Map.TimeExtent</see> Property to control the visible geographic 
            features in a Layer that have temporal data. 
            </para>
            <para>
            <b>Note:</b> When a geographic feature has a TimeExtent that falls within the Map.TimeExtent, that feature 
            will be displayed. Conversely, when the TimeExtent of the geographic feature is no longer within the 
            Map.TimeExtent it is no longer displayed in the Map. 
            </para>
            <para>
            The TimeSlider Control can be created at design time in XAML or dynamically at runtime in the code-behind. 
            The TimeSlider Control is one of several controls available in the Visual Studio Toolbox when the ArcGIS API 
            for Silverlight and ArcGIS API for WPF is installed, see the following screen shot:
            </para>
            <para>
            <img border="0" alt="Example of the TimeSlider Control on the XAML design surface of a Silverlight application." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.png"/>
            </para>
            <para>
            The default appearance of the TimeSlider Control can be modified using numerous inherited Properties from 
            System.Windows.FrameworkElement, System.Windows.UIElement, and System.Windows.Controls. An example of some 
            of these Properties include: .Height, .Width, .BackGround, .BorderBrush, .BorderThickness, .Foreground, 
            .HorizontalAlignment, .VerticalAlignment, .Margin, .Opacity, .Visibility, etc. 
            </para>
            <para>
            <b>Note:</b> you cannot change the core behavior of the sub-components (i.e. ToggleButton, Rectangle, Grid, Thumb, 
            Border, RepeatButton, Button, Path, etc.) of the TimeSlider Control using standard Properties or Methods 
            alone. To change the core behavior of the sub-components and their appearance in the Control, developers can 
            modify the Control Template in XAML and the associated code-behind file. The easiest way to modify the UI 
            sub-components is using Microsoft Expression Blend. Then developers can delete/modify existing or add new 
            sub-components in Visual Studio to create a truly customized experience. A general approach to customizing 
            a Control Template is discussed in the ESRI blog entitled: 
            <a href="http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx" target="_blank">Use control templates to customize the look and feel of ArcGIS controls</a>. 
            Specific code examples of modifying the Control Template of the TimeSlider Control to can be found in the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlaying">IsPlaying</see> and 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Loop">Loop</see> Properties documents.
            </para>
            <para>
            The TimeSlider Control is comprised of the following sub-components:
            </para>
            <para>
            <list type="bullet">
            <item>
            A TickBar with TickMarks to display the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals">Intervals</see> of TimeExtent values
            </item>
            <item>
            A PlayPauseButton to start and stop the graphic animations 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlaying">playing</see> in the TickBar
            </item>
            <item>
            A MinimumThumb and MaximumThumb to denote the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">range</see> of 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeExtent values</see> being viewed along the 
            TickBar
            </item>
            <item>
            A NextButton to <see cref="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Next">advance</see> the thumb(s) forward 
            along the  intervals of TickBar
            </item>
            <item>
            A PreviousButton to <see cref="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Previous">reverse</see> the thumb(s) 
            back along the intervals of the TickBar
            </item>
            </list>
            </para>
            <para>
            The following image shows a typical TimeSlider Control and its various sub-component parts:
            </para>
            <para>
            <img border="0" alt="Describing the various parts of the TimeSlider Control." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider2.png"/>
            </para>
            <para>
            Clients have the ability to use the various Play, Pause, Next, and Previous buttons on the TimeSlider to 
            control the animation of which geographic features are displayed very similar to one watching a movie 
            on a DVD player or listening to music on and MP3 player. Users can also drag/slide the thumb(s) on the 
            TimeSlider to move to an exact position in the timeline of the TimeExtent for more control over feature 
            viewing.
            </para>
            <para>
            The bare minimum Properties that need to be set on the TimeSlider in order to have functioning interaction 
            between the TimeSlider and Map Controls are 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue">MinimumValue</see>, 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue">MaximumValue</see>, and 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">Value</see> (as well as binding the Map.TimeExtent 
            to the TimeSlider.Value). This will give a TimeSlider where the user can move the thumb(s) and have the Map 
            Control respond accordingly. But having only this bare minimum will not provide the full functionality of 
            the PlayPauseButton, NextButton, and PreviousButton being visible. In order to have the full functionality 
            of the TimeSlider the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals">Intervals</see> Property 
            must also be set.
            </para>
            <para>
            The setting of the initial <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">Value</see> Property for 
            end users typically corresponds to the left-most TickMark position on the TickBar of the TimeSlider. This enables end 
            users to click the Play icon of the PlayPauseButton to begin an animation from the beginning of the series 
            of temporal geographic observations. There are several ways that a developer could determine what the 
            <a href="http://msdn.microsoft.com/en-us/library/03ybds8y(v=VS.95).aspx" target="_blank">Date/Time</a> of the 
            left-most TickMark position is; the following is a list of some common ways to determine this left-most 
            Date value:
            </para>
            <list type="bullet">
              <item>
              <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue">TimeSlider.MinimumValue</see> Property
              </item>
              <item>
              <see cref="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(ESRI.ArcGIS.Client.TimeExtent,System.TimeSpan)">TimeSlider.CreateTimeStopsByTimeInterval.First</see> 
              Property of the Static Function
              </item>
              <item>
              <see cref="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByCount(ESRI.ArcGIS.Client.TimeExtent,System.Int32)">TimeSlider.CreateTimeStopsByCount.First</see> 
              Property of the Static Function
              </item>
              <item>
              <see cref="P:ESRI.ArcGIS.Client.FeatureLayer.TimeExtent">FeatureLayer.TimeExtent.Start</see> Property
              </item>
              <item>
              <see cref="P:ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer.TimeExtent">ArcGISDynamicMapServiceLayer.TimeExtent.Start</see> 
              Property
              </item>
              <item>
              <see cref="P:ESRI.ArcGIS.Client.ArcGISImageServiceLayer.TimeExtent">ArcGISImageServiceLayer.TimeExtent.Start</see> 
              Property
              </item>
              <item>
              Set it manually in XAML or code-behind to a known Date/Time
              </item>
              <item>
              Obtain the initial start Date/Time of the TimeExtent from your own custom function (see the code example in 
              the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">TimeSlider.TimeMode</see> Property documentation for 
              obtaining the initial TimeSlider.Value from a subset of Graphics in a FeatureLayer rather that the 
              FeatureLayer’s published TimeExtent.Start)
              </item>
            </list>
            <para>
            <b>NOTE:</b> you use Date/Time value(s) to construct a TimeExtent object.)
            </para>
            <para>
            The TimeExtent object that is used by the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeSlider.Value</see> 
            Property can be essentially constructed two ways: 
            (1) as an 'instance-in-time' or (2) as a 'period-of-time'. Depending on how the TimeExtent object is 
            constructed will have implications for how the TimeSlider behaves when the TimeSlider.Value is 
            set. It is important to remember that a Map Control that is bound to a TimeSlider will only display 
            geographic features that match the TimeSlider.Value Property. 
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">TimeSlider.TimeMode</see> Property also
            plays crucial role in how the TimeSlider behaves and setting the correct TimeExtent for the TimeSlider.Value
            will impact the TimeSlider.TimeMode setting.
            When using the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TimeMode">TimeMode</see> Enumerations of 
            <b>CumulativeFromStart</b> and <b>TimeExtent</b>, it is best 
            that you construct the TimeSlider.Value using a 'period-of-time' for the TimeExtent object. When using the 
            TimeMode Enumeration of <b>TimeInstant</b>, it is best that you construct the TimeSlider.Value using an 
            'instance-in-time' for the TimeExtent object. By default the TimeSlider uses the TimeMode.CumulativeFromStart 
            as its setting. The code example in the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeSlider.Value</see> 
            document demonstrates the subtle differences you may want to explore. 
            </para>
            <para>
            The following code examples demonstrate manually creating an 'instance-in-time' and 'period-of-time' for a 
            TimeExtent object:
            </para>
            <para>XAML:
            </para>
            <code>
            &lt;esri:TimeSlider Name="TimeSlider1" Value="2000/08/04 12:30:00 UTC" /&gt; &lt;!-- instance-in-time --&gt; 
            &lt;esri:TimeSlider Name="TimeSlider1" Value="2000/08/04 12:30:00 UTC, 2000/08/05 12:30:00 UTC" /&gt; &lt;!-- period-of-time --&gt;
            </code>
            <para>C#:
            </para>
            <code>
            TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(new DateTime(2000, 8, 4, 12, 30, 0)); // instance-in-time
            TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(new DateTime(2000, 8, 4, 12, 30, 0), new DateTime(2000, 8, 5, 12, 30, 0)); // period-of-time
            </code>
            <para>VB.NET:
            </para>
            <code>
            TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(New Date(2000, 8, 4, 12, 30, 0)) ' instance-in-time
            TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(New Date(2000, 8, 4, 12, 30, 0), New Date(2000, 8, 5, 12, 30, 0)) ' period-of-time
            </code>
            <para>
            A word of caution about using the code-behind TimeSlider.Loaded Event if you are trying to obtain the 
            TimeExtent Property of a Layer which contains temporal observations to calculate the TimeSlider.Value and 
            TimeSlider.Intervals; this will not work. The TimeSlider.Loaded event occurs before the various Layer 
            <b>.Initialized</b> Events occur so the Layer's <b>.TimeExtent</b> values will always be 
            Nothing/null. Using the TimeSlider.Loaded Event to determine the TimeSlider.Value and TimeSlider.Intervals 
            Properties is best when the TimeExtent values are known at design-time and the TimeSlider.Value and 
            TimeSlider.Intervals just need constructing in the code-behind.
            </para>
            <para>
            It is possible to set the TimeSlider.Value Property in XAML using Binding to another object. Just make sure 
            the object you are binding to returns a TimeExtent object. The following is a simplified XAML fragment where 
            the TimeSlider.Value is set to the TimeExtent of a FeatureLayer named 'EarthquakesLayer':
            <code>
            &lt;esri:TimeSlider Name="TimeSlider1" Value="{Binding ElementName=MyMap, Path=Layers[EarthquakesLayer].TimeExtent, Mode=OneWay}" /&gt;
            </code>
            </para>
            <para>
            The types of ArcGIS Server Layers that support Time Info (i.e. they have TimeExtent information) that are 
            useful with the TimeSlider are:
            <list type="bullet">
              <item>
              <see cref="T:ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer">ArcGISDynamicMapServiceLayer</see>
              </item>
              <item>
              <see cref="T:ESRI.ArcGIS.Client.ArcGISImageServiceLayer">ArcGISImageServiceLayer</see>
              </item>
              <item>
              <see cref="T:ESRI.ArcGIS.Client.FeatureLayer">FeatureLayer</see>
              </item>
              <item>
              <see cref="T:ESRI.ArcGIS.Client.GraphicsLayer">GraphicsLayer</see> (which are based upon 
              <see cref="T:ESRI.ArcGIS.Client.Graphic">Graphic</see> elements)
              </item>
            </list>
            </para>
            <para>
            <b>TIP: </b>For the ArcGISDynamicMapServiceLayer, ArcGISImageServiceLayer, and FeatureLayer you can tell 
            if TimeExtent information is available for the web service by copying the Url into the address bar of a web 
            browser and scrolling through the ArcGIS Server web service description and look for a 'Time Info' section. 
            See the following screen shot for a sample FeatureLayer:  
            </para>
            <para>
            <img border="0" alt="How to determine if an ArcGIS Server web service has temporal information." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.Value.png"/>
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlaying">IsPlaying</see> Property gets or set as 
            Boolean indicating whether the TimeSlider is playing through the Intervals of the TickBar. A value of True 
            means the animating of the thumb(s) is occurring. A value of False means no animation is occurring. The 
            default TimeSlider Control uses a ToggleButton for the PlayPauseButton to control the animations. When the 
            Pause icon is visible that means animation is occurring (i.e. IsPlaying=True). When the Play icon is visible, 
            that means the animation has stopped (i.e. IsPlaying=False). See the following screen shot for a visual 
            depiction:
            </para>
            <para>
            <img border="0" alt="The PlayPauseButton and the IsPlaying Property of the TimeSlider Control." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.IsPlaying.png"/>
            </para>
            <para>
            Under most circumstances it is not necessary to set the IsPlaying Property via code as this Property is 
            automatically managed as part of the default TimeSlider Control. It is possible to modify the default 
            behavior of the PlayPauseButton sub-component of the TimeSlider by editing it’s Control Template. The 
            example code in the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlaying">IsPlaying</see> Property 
            demonstrates a code example of using the set operation if customization is desired.  
            </para>
            <para>The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.PlaySpeed">TimeSlider.PlaySpeed</see> Property 
            uses a <a href="http://msdn.microsoft.com/en-us/library/system.timespan(v=VS.95).aspx" target="_blank">TimeSpan</a> 
            Structure to define how quickly the thumb moves across the tick marks on the TimeSlider. The default 
            PlaySpeed is 1 second.
            </para>
            <para>
            The PlaySpeed Attribute in XAML follows the format of "hh:mm:ss" where, hh = hours (0 to 24), mm = minutes 
            (0 to 60), and ss = seconds (0 to 60). You can have fractions of a second by using decimal values. In the 
            following XAML code fragment the PlaySpeed increments the time intervals every tenth of a second (i.e. 0.1).
            </para>
            <para>
            <code lang="XAML">
            &lt;esri:TimeSlider Name="TimeSlider1" PlaySpeed="00:00:00.1"/&gt;
            </code>
            </para>
            <para>
            In the code-behind there are several ways to make a TimeSpan using the constructor. The following code 
            example(s) provides a few different examples that also produce the same time intervals every tenth of a 
            second (i.e. 0.1):
            </para>
            <para>
            VB.NET:
            </para>
            <para>
            <code lang="VB.NET">
            TimeSlider1.PlaySpeed = New TimeSpan(100000) ' ticks
            TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0.1) ' hours, minutes, seconds
            TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0.1) ' days, hours, minutes, seconds
            TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0, 10) ' days, hours, minutes, seconds, milliseconds
            </code>
            </para>
            <para>
            C#:
            </para>
            <para>
            <code lang="CS">
            TimeSlider1.PlaySpeed = new TimeSpan(100000); // ticks
            TimeSlider1.PlaySpeed = new TimeSpan(0, 0, 0.1); // hours, minutes, seconds
            TimeSlider1.PlaySpeed = new TimeSpan(0, 0, 0, 0.1); // days, hours, minutes, seconds
            TimeSlider1.PlaySpeed = new TimeSpan(0, 0, 0, 0, 10); // days, hours, minutes, seconds, milliseconds
            </code>
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">TimeSlider.TimeMode</see> Property determines 
            how the TimeSlider Control will represent a TimeExtent as the thumb(s) moves across the tick marks. 
            </para>
            <para>
            The TimeExtent that is shown visually in the TimeSlider Control is corresponds to the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeSlider.Value</see> Property. The TimeMode 
            Property is set to one of three Enumerations:
            </para>
            <para>
            <list type="bullet">
            <item>
            <b>TimeMode.CumulativeFromStart</b>: This TimeMode setting will draw all observations on the Map from the 
            oldest to the current as the MaximumThumb crosses a tic mark. It draws observations in a 'cumulative' effect. 
            As the animation occurs, the TimeSlider.Value.Start will remain static but the TimeSlider.Value.End will 
            constantly change. The MinimumThumb is not shown and is implied to be the same as the TimeSlider.Value.Start. 
            The color in the Foreground of the TimeSlider will shade from the TimeSlider.Value.Start through the 
            TimeSlider.Value.End as animation occurs. This is the default TimeMode setting on the TimeSlider. See the 
            following screen shot:
            <para>
            <img border="0" alt="The TimeSlider TimeMode.CumulativeFromStart." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.CumulativeFromStart.png"/>
            </para>
            </item>
            <item>
            <b>TimeMode.TimeExtent</b>: This TimeMode setting will draw only those observations on the Map that fall in 
            a 'window of time' as defined by the TimeSlider.Value. As the thumbs (MinimumThumb and MaximumThumb) of the 
            'window of time' move across the tick marks the older observations will disappear and newer ones will appear. 
            As the animation occurs, the TimeSlider.Value.Start (analogous to the MinimumThumb) will constantly change and 
            the TimeSlider.Value.End (analogous to the MaximumThumb) will constantly change but the two difference between 
            the Start and End times will be fixed. The Foreground shading of the TimeSlider will display in between the 
            two thumbs as the animation occurs. See the following screen shot:
            <para>
            <img border="0" alt="The TimeSlider TimeMode.TimeExtent." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.TimeExtent.png"/>
            </para>
            </item>
            <item>
            <b>TimeMode.TimeInstant</b>: This TimeMode setting will draw only the most recent observations on the Map as 
            the thumb(s) (MinimumThumb and MaximumThumb) crosses a tic mark. It draws observations in a 'snapshot' effect. 
            As the animation occurs, the TimeSlider.Value.Start and the TimeSlider.Value.End will be exactly the same but 
            values will change continuously. The MinimumThumb and MaximumThumb overlap each other exactly and give the 
            visual appearance of only one thumb being show to demonstrate the snapshot effect. No Foreground shading 
            occurs in the TimeSlider in the TimeMode.TimeInstant setting. See the following screen shot:
            <para>
            <img border="0" alt="The TimeSlider TimeMode.TimeInstant." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.TimeInstant.png"/>
            </para>
            </item>
            </list>
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Loop">TimeSlider.Loop</see> Property gets or sets a value 
            indicating whether the animating of the TimeSlider thumb(s) will restart playing when the end of the TickBar 
            is reached. The Loop Property of True allows continuous playing of the thumb(s) across the TickBar of the 
            TimeSlider. A False value means the thumb(s) will stop at the last Interval (i.e. the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue">MaximumValue</see>) in the TickBar when it 
            is reached. The default Loop value of the TimeSlider is False.
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue">TimeSlider.MinimumValue</see> Property 
            specifies the starting Date/Time of the TimeSlider track.
            </para>
            <para>
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue">TimeSlider.MaximumValue</see> Property 
            specifies the ending Date/Time of the TimeSlider track.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the 'Initialize the TimeSlider' button to initialize the TimeSlider functions (PlayPause, Next, 
            Previous) to display the observed oil spill and projected oil spill plume trajectory. Then click the play 
            button to watch the animation. The black polygons represent actual oil spill observations by day. The gray 
            polygons represent the area of the oil spill plume trajectory. As time moves forward in the example, the 
            gray polygons will merge into one large polygon that is the cumulative trajectory over the course of the 
            oil spill.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Using the TimeSlider Control to display oil spill observations and trajectory of the oil plume." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider3.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot"&gt;
            
              &lt;!--
              Add a Map control with an ArcGISTiledMapServiceLayer and a FeatureLayer. The Map.TimeExtent is
              bound to the MyTimeSlider (TimeSlider) control. The MyTimeSlider will control what TimeExtent (i.e.
              slices of time) can be viewed in the Map control.
                      
              The FeatureLayer will contain several observations based upon Polygon geometries which have various 
              TimeExtent values set. When the specific features have a TimeExtent that falls within the 
              Map.TimeExtent will they be displayed based upon the MyTimeSlider settings.
              --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,150,0,0" Name="Map1" 
                        VerticalAlignment="Top" Height="318" Width="341" 
                        Extent="-92.65,25.64,-85.53,32.28"
                        TimeExtent="{Binding ElementName=MyTimeSlider, Path=Value}"&gt;
              
                &lt;esri:ArcGISTiledMapServiceLayer ID="PhysicalTiledLayer" 
                             Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" /&gt;
                
                &lt;!-- The FeatureLayer displays oil slick information in the Gulf of Mexico by day from the NOAA. --&gt;
                &lt;esri:FeatureLayer ID="MyFeatureLayer"
                                 Url="http://servicesbeta.esri.com/ArcGIS/rest/services/GulfOilSpill/Gulf_Oil_Spill/MapServer/0"
                                 OutFields="*"&gt;
                    
                  &lt;esri:FeatureLayer.Renderer&gt;
                    &lt;esri:TemporalRenderer&gt;
                      
                      &lt;!-- 
                      The Gray polygons display the projected trajectory of the oil slick.
                      The Black polygons display actual observed oil on the water.
                      --&gt;
                        
                      &lt;esri:TemporalRenderer.ObservationRenderer&gt;
                        &lt;esri:SimpleRenderer&gt;
                          &lt;esri:FillSymbol Fill="Gray" BorderBrush="Gray"/&gt;
                        &lt;/esri:SimpleRenderer&gt;
                      &lt;/esri:TemporalRenderer.ObservationRenderer&gt;
                                    
                      &lt;esri:TemporalRenderer.LatestObservationRenderer&gt;
                        &lt;esri:SimpleRenderer&gt;
                          &lt;esri:FillSymbol Fill="Black" BorderBrush="Black"/&gt;
                        &lt;/esri:SimpleRenderer&gt;
                      &lt;/esri:TemporalRenderer.LatestObservationRenderer&gt;
                        
                    &lt;/esri:TemporalRenderer&gt;
                  &lt;/esri:FeatureLayer.Renderer&gt;
                &lt;/esri:FeatureLayer&gt;
            
              &lt;/esri:Map&gt;
            
              &lt;!-- 
              Add a TimeSlider to control the display of what geographic features are displayed in the Map Control
              based upon a specified TimeExtent. In the case of this sample code, when the specific features 
              have a TimeExtent that falls within the Map.TimeExtent will they be displayed based upon the MyTimeSlider 
              settings.
                
              Tip: It is the x:Name Attribute that allows you to access the TimeSlider Control in the code-behind file. 
             
              The PlaySpeed Attribute follows the format of "hh:mm:ss" where, hh = hours (0 to 24), mm = minutes (0 to 60),
              and ss = seconds (0 to 60). In this example the PlaySpeed increments the time intervals every half a second
              (i.e. 0.5).
                  
              The TimeMode Attribute of CumulativeFromStart means there is a fixed start date/time (2010/05/24 20:00:00 UTC
              in this example) that does not change and an end date/time that adjusts as the specified Interval (one day 
              in this example which is set in the code-behind) increases. As the 'thumb' of the TimeSlider control moves
              to the right along the slider track the TimeExtent Interval of the TimeSlider increases.
                  
              The MinimumValue Attribute specifies the starting date/time of the TimeSlider track.
                  
              The MaximumValue Attribute specifies the ending date/time of the TimeSlider track.
                
              The Value Attribute specifies the date/time location of the thumb along the TimeSlider track. The thumb can 
              have a start date/time and end date/time set for a TimeExtent which will display a window of time as the
              thumb moves along the TimeSlider track but this is best for TimeMode Attribute of 'TimeExtent'. Since
              this example is showing a TimeMode of 'CumulativeFromStart' it is best to have the thumb just use a single
              date/time specified for the Value set to the same date/time as the MinimumValue.
                
              The last thing needed to enable the full capabilities of a TimeSlider (i.e. having the PlayPause, Next, 
              and Previous buttons) is to set the Intervals Property. In Silverlight, this can only be done in code-behind to 
              construct the Collection Type of IEnumerable(Of Date). Without the TimeSlider.Intervals being set the user 
              has to manually move the thumb across the TimeSlider track to change the Map.TimeExtent and thereby see what 
             Graphics can be displayed for that date/time window.
              --&gt;
              &lt;esri:TimeSlider x:Name="MyTimeSlider" 
                                MinimumValue="2010/05/24 20:00:00 UTC"
                                MaximumValue="2010/08/05 20:00:00 UTC"
                                Height="22" Margin="12,122,0,0" 
                                Value="2010/05/24 20:00:00 UTC"
                                TimeMode="CumulativeFromStart"
                                PlaySpeed="0:0:0.5"
                                HorizontalAlignment="Left" VerticalAlignment="Top" Width="341"/&gt;
            
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="75" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="455" 
                       TextWrapping="Wrap" Margin="12,12,0,0" 
                       Text="Click the 'Initialize the TImeSlider' button to initialize the TimeSlider functions 
                         (PlayPause, Next, Previous) to display the observed oil spill and projected oil spill plume 
                         trajectory. Then click the play button to watch the animation. The black polygons represent 
                         actual oil spill observations by day. The gray polygons represent the area of the oil spill 
                         plume trajectory. As time moves forward in the example the gray polygons will merge into one
                         large polygon that is the cumulative trajectory over the course of the oil spill." /&gt;
            
              &lt;!-- Add a button to perform the work. --&gt;
              &lt;Button Content="Initialize the TimeSlider" Height="23" HorizontalAlignment="Left" 
                    Margin="77,93,0,0" Name="Button1" VerticalAlignment="Top" Width="185" Click="Button1_Click"/&gt;
                
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button1_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              // are a Collection of IEnumerable&lt;DateTime&gt; objects. When the TimeSlider.Intervals Property is set along with 
              // the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. This full 
              // functionality includes buttons for Play, Pause, Forward, and Back.
              
              // Obtain the start and end DateTime values from the TimeSlider named MyTimeSlider that was defined in XAML.
              DateTime myMinimumDate = MyTimeSlider.MinimumValue;
              DateTime myMaximumDate = MyTimeSlider.MaximumValue;
              
              // Create a TimeExtent based upon the start and end date/times.
              ESRI.ArcGIS.Client.TimeExtent myTimeExtent = new ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate);
              
              // Create a new TimeSpan (1 day in our case).
              TimeSpan myTimeSpan = new TimeSpan(1, 0, 0, 0);
              
              // Create an empty Collection of IEnumerable&lt;DateTime&gt; objects.
              System.Collections.Generic.IEnumerable&lt;DateTime&gt; myIEnumerableDates = null;
              
              // Load all of Dates into the Collection of IEnumerable&lt;DateTime&gt; objects using the 
              // TimeSlider.CreateTimeStopsByTimeInterval is a Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan);
              
              // Set the TimeSlider.Intervals which define the tick marks along the TimSlider track to the IEnumerable&lt;DateTime&gt; 
              // objects.
              MyTimeSlider.Intervals = myIEnumerableDates;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              ' are a Collection of IEnumerable(Of Date) objects. When the TimeSlider.Intervals Property is set along with 
              ' the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. This full 
              ' functionality includes buttons for Play, Pause, Forward, and Back.
              
              ' Obtain the start and end Date/Time values from the TimeSlider named MyTimeSlider that was defined in XAML.
              Dim myMinimumDate As Date = MyTimeSlider.MinimumValue
              Dim myMaximumDate As Date = MyTimeSlider.MaximumValue
              
              ' Create a TimeExtent based upon the start and end date/times.
              Dim myTimeExtent As New ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate)
              
              ' Create a new TimeSpan (1 day in our case).
              Dim myTimeSpan As New TimeSpan(1, 0, 0, 0)
              
              ' Create an empty Collection of IEnumerable(Of Date) objects.
              Dim myIEnumerableDates As System.Collections.Generic.IEnumerable(Of Date)
              
              ' Load all of Dates into the Collection of IEnumerable(Of Date) objects using the 
              ' TimeSlider.CreateTimeStopsByTimeInterval is a Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan)
              
              ' Set the TimeSlider.Intervals which define the tick marks along the TimSlider track to the IEnumerable(Of Date) 
              ' objects.
              MyTimeSlider.Intervals = myIEnumerableDates
              
            End Sub
            </code>
            </example>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application
            code or internal processes (such as a rebuilding layout pass) call
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnLostFocus(System.Windows.RoutedEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.LostFocus"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnGotFocus(System.Windows.RoutedEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.GotFocus"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnMouseEnter(System.Windows.Input.MouseEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.MouseEnter"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnMouseLeave(System.Windows.Input.MouseEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.MouseLeave"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.MouseLeftButtonDown"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.OnKeyDown(System.Windows.Input.KeyEventArgs)">
            <summary>
            Called before the <see cref="E:System.Windows.UIElement.KeyDown"/> event occurs.
            </summary>
            <param name="e">The data for the event.</param>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValueProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValueProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IntervalsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.PlaySpeedProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.PlaySpeed"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeModeProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode"/> dependancy property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlayingProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlaying"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByCount(ESRI.ArcGIS.Client.TimeExtent,System.Int32)">
            <summary>
            Creates the specified number of time stops evenly distributed in the time extent.
            </summary>
            <param name="extent">The time extent.</param>
            <param name="count">Number of stops.</param>
            <returns>IEnumerable of time stops.</returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(ESRI.ArcGIS.Client.TimeExtent,System.TimeSpan)">
            <summary>
            Creates time stops within an interval dispersed with by specified <see cref="T:System.TimeSpan"/>.
            </summary>
            <param name="extent">The time extent.</param>
            <param name="interval">Interval between each time stop.</param>
            <returns>IEnumerable of time stops.</returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Next">
            <summary>
            Jumps to the next position in the intervals.
            </summary>
            <returns><c>true</c> if succeeded, <c>false</c> if there are no <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals"/> 
            or the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue"/> was reached.</returns>
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals"/>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Previous">
            <summary>
            Jumps to the previous position in the intervals.
            </summary>
            <returns><c>true</c> if succeeded, <c>false</c> if there are no <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals"/> 
            or the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue"/> was reached.</returns>
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals"/>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeSlider.LoopProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Loop"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue">
            <summary>
            Gets or sets the minimum value.
            </summary>
            <value>The minimum value.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue">
            <summary>
            Gets or sets the maximum value.
            </summary>
            <value>The maximum value.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">
            <summary>
            Gets or sets the <see cref="T:ESRI.ArcGIS.Client.TimeExtent">TimeExtent</see> value(s) associated with the 
            visual thumbs(s) displayed on the TickBar of the TimeSlider Control. 
            </summary>
            <remarks>
            <para>
            The TimeSlider Value Property emits <see cref="T:ESRI.ArcGIS.Client.TimeExtent">TimeExtent</see> value(s) that 
            are typically used in conjunction with the Map Control to enhance the viewing of geographic features that 
            have attributes based upon Date/Time (aka. Time Info in ArcGIS Server terminology) information. In most 
            circumstances, the Value Property is bound to the 
            <see cref="P:ESRI.ArcGIS.Client.Map.TimeExtent">Map.TimeExtent</see> Property to control the visible 
            geographic features in a Layer that have temporal data. 
            </para>
            <para>
            <b>Note: </b>When a geographic feature has a TimeExtent that falls within the Map.TimeExtent, that feature 
            will be displayed. Conversely, when the TimeExtent of the geographic feature is no longer within the 
            Map.TimeExtent it is no longer displayed. 
            </para>
            <para>
            Setting the Value Property is one of the three necessary properties that must be set in order to have a 
            functioning TimeSlider. The other two necessary properties that must be set are the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue">TimeSlider.MinimumValue</see> and 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue">TimeSlider.MaximumValue</see>. 
            Under most circumstances the TimeSlider.Value Property is bound to the 
            <see cref="P:ESRI.ArcGIS.Client.Map.TimeExtent">Map.TimeExtent</see> Property to have the TimeSlider 
            manage the animation of temporal data in the Map Control. Setting these minimum requirements will enable 
            the TimeSlider to allow the user to manually move the thumb(s) across the TockBar causing an automatic 
            update of what is 
            emitted by the TimeSlider.Value Property to the bound Map.Value Property and thus producing the animation 
            effect on the Map. However, having only the three bare minimum properties set on the TimeSlider will not 
            provide the full functionality of the PlayPauseButton, NextButton, and PreviousButton being visible. In 
            order to have the full functionality of the TimeSlider, the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals">TimeSlider.Intervals</see> Property must also 
            be set.
            </para>
            <para>
            The setting of the initial Value Property for 
            end users typically corresponds to the left-most TickMark position on the TickBar of the TimeSlider. This enables end 
            users to click the Play icon of the PlayPauseButton to begin an animation from the beginning of the series 
            of temporal geographic observations. There are several ways that a developer could determine what the 
            <a href="http://msdn.microsoft.com/en-us/library/03ybds8y(v=VS.95).aspx" target="_blank">Date/Time</a> of the 
            left-most TickMark position is. The following is a list of some common ways to determine this left-most 
            Date value:
            </para>
            <list type="bullet">
              <item>
              <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MinimumValue">TimeSlider.MinimumValue</see> Property
              </item>
              <item>
              <see cref="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(ESRI.ArcGIS.Client.TimeExtent,System.TimeSpan)">TimeSlider.CreateTimeStopsByTimeInterval.First</see> 
              Property of the Static Function
              </item>
              <item>
              <see cref="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByCount(ESRI.ArcGIS.Client.TimeExtent,System.Int32)">TimeSlider.CreateTimeStopsByCount.First</see> 
              Property of the Static Function
              </item>
              <item>
              <see cref="P:ESRI.ArcGIS.Client.FeatureLayer.TimeExtent">FeatureLayer.TimeExtent.Start</see> Property
              </item>
              <item>
              <see cref="P:ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer.TimeExtent">ArcGISDynamicMapServiceLayer.TimeExtent.Start</see> 
              Property
              </item>
              <item>
              <see cref="P:ESRI.ArcGIS.Client.ArcGISImageServiceLayer.TimeExtent">ArcGISImageServiceLayer.TimeExtent.Start</see> 
              Property
              </item>
              <item>
              Set it manually in XAML or code-behind to a known Date/Time
              </item>
              <item>
              Obtain the initial start Date/Time of the TimeExtent from your own custom function (see the code example in 
              the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">TimeSlider.TimeMode</see> Property documentation for 
              obtaining the initial TimeSlider.Value from a subset of Graphics in a FeatureLayer rather that the 
              FeatureLayer’s published TimeExtent.Start)
              </item>
            </list>
            <para>
            <b>NOTE:</b> you use Date/Time value(s) to construct the TimeExtent object.
            </para>
            <para>
            The TimeExtent object that is used by the TimeSlider.Value 
            Property can be essentially constructed two ways: 
            (1) as an 'instance-in-time' or (2) as a 'period-of-time'. Depending on how the TimeExtent object is 
            constructed will have implications for how the TimeSlider behaves when the TimeSlider.Value is 
            set. It is important to remember that a Map Control that is bound to a TimeSlider will only display 
            geographic features that match the TimeSlider.Value Property. 
            The <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">TimeSlider.TimeMode</see> Property also
            plays crucial role in how the TimeSlider behaves and setting the correct TimeExtent for the TimeSlider.Value
            will impact the TimeSlider.TimeMode setting.
            When using the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TimeMode">TimeMode</see> Enumerations of 
            <b>CumulativeFromStart</b> and <b>TimeExtent</b>, it is best 
            that you construct the TimeSlider.Value using a 'period-of-time' for the TimeExtent object. When using the 
            TimeMode Enumeration of <b>TimeInstant</b>, it is best that you construct the TimeSlider.Value using an 
            'instance-in-time' for the TimeExtent object. By default the TimeSlider uses the TimeMode.CumulativeFromStart 
            as its setting. The code example in the <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeSlider.Value</see> 
            document demonstrates the subtle differences you may want to explore. 
            </para>
            <para>
            The following code examples demonstrate manually creating an 'instance-in-time' and 'period-of-time' for a 
            TimeExtent object:
            </para>
            <para>XAML:
            </para>
            <code>
            &lt;esri:TimeSlider Name="TimeSlider1" Value="2000/08/04 12:30:00 UTC" /&gt; &lt;!-- instance-in-time --&gt; 
            &lt;esri:TimeSlider Name="TimeSlider1" Value="2000/08/04 12:30:00 UTC, 2000/08/05 12:30:00 UTC" /&gt; &lt;!-- period-of-time --&gt;
            </code>
            <para>C#:
            </para>
            <code>
            TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(new DateTime(2000, 8, 4, 12, 30, 0)); // instance-in-time
            TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(new DateTime(2000, 8, 4, 12, 30, 0), new DateTime(2000, 8, 5, 12, 30, 0)); // period-of-time
            </code>
            <para>VB.NET:
            </para>
            <code>
            TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(New Date(2000, 8, 4, 12, 30, 0)) ' instance-in-time
            TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(New Date(2000, 8, 4, 12, 30, 0), New Date(2000, 8, 5, 12, 30, 0)) ' period-of-time
            </code>
            <para>
            A word of caution about using the code-behind TimeSlider.Loaded Event if you are trying to obtain the 
            TimeExtent Property of a Layer which contains temporal observations to calculate the TimeSlider.Value and 
            TimeSlider.Intervals; this will not work. The TimeSlider.Loaded event occurs before the various Layer 
            <b>.Initialized</b> Events occur so the Layer's <b>.TimeExtent</b> values will always be 
            Nothing/null. Using the TimeSlider.Loaded Event to determine the TimeSlider.Value and TimeSlider.Intervals 
            Properties is best when the TimeExtent values are known at design-time and the TimeSlider.Value and 
            TimeSlider.Intervals just need constructing in the code-behind.
            </para>
            <para>
            It is possible to set the TimeSlider.Value Property in XAML using Binding to another object. Just make sure 
            the object you are binding to returns a TimeExtent object. The following is a simple XAML fragment where 
            the TimeSlider.Value is set to the TimeExtent of a FeatureLayer named ‘EarthquakesLayer’:
            <code>
            &lt;esri:TimeSlider Name="TimeSlider1" Value="{Binding ElementName=MyMap, Path=Layers[EarthquakesLayer].TimeExtent, Mode=OneWay}" /&gt;
            </code>
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the various buttons for each <b>TimeMode</b> setting to see what the effect is on running the 
            TimeSlider and the output that is produced in the Map Control. The buttons in Green are those that use 
            best practices in the setting the TimeSlider <b>.Value</b> and <b>.TimeMode</b> appropriately in 
            conjunction with each other. Click the bottom button ('Get the TimeSliderExtent.Value') before and 
            after using the PlayPauseButton on the TimeSlider control to see how the various TimeSlider.Value's 
            change.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Comparing the various TimeSlider.Value settings for the different TimeSlider.TimeMode options." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.Value2.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="63" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                       Width="628" TextWrapping="Wrap" Margin="12,0,0,0" 
                       Text="Click the various buttons for each TimeMode setting to see what the effect is on running 
                       the TimeSlider and the output that is produced in the Map Control. The buttons in Green are 
                       those that use best practices in the setting the TimeSlider .Value and .TimeMode appropriately 
                       in conjunction with each other. Click the bottom button ('Get the TimeSliderExtent.Value') 
                       before and after using the PlayPauseButton on the TimeSlider control to see how the various 
                       TimeSlider.Value's change." /&gt;
                
              &lt;!--
              Add a Map Control with an ArcGISTiledMapServiceLayer and a FeatureLayer. The ArcGISTiledMapsServiceLayer 
              is the first Layer in Map.LayerCollection and is drawn on the bottom. The FeatureLayer is then added and 
              draws on top. Set the Map.Extent to zoom to the middle of the Atlantic Ocean.
                  
              Setting the Map.TimeExtent acts like a Where clause in that only those features/records that fall
              within the set TimeSlider.Value (which is a narrowed TimeExtent) will then be shown. By Binding the 
              Map.TimeExtent to the TimeSlider.Value Property, the Map will automatically update as the thumb on 
              the TimeSlider moves.
              --&gt;
              &lt;esri:Map Name="Map1" Background="White" Height="375" Width="375" Margin="12,93,0,0" 
                        VerticalAlignment="Top" HorizontalAlignment="Left" Extent="-96.81,-57.36,-26.16,13.28"
                        TimeExtent="{Binding ElementName=TimeSlider1, Path=Value}"&gt;
              
                &lt;!-- Add an ArcGISTiledMapsServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                      Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/&gt;
                
                &lt;!--
                The FeatureLayer contains earthquake dats that is restricted to only those with a Magnitude &gt; 7.
                --&gt;
                     
                &lt;esri:FeatureLayer ID="MyFeatureLayer"
                      Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Earthquakes/Since_1970/MapServer/0" 
                      OutFields="*" Where="Magnitude &gt; 7" Initialized="FeatureLayer_Initialized"/&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add a TimeSlider. The initialization of the TimeSlider Properties (.MinimumValue, .MaximumValue, 
              .Intervals, and .Value) will be handled in the code-behind in the FeatureLayer_Initialized Event.
              --&gt;
              &lt;esri:TimeSlider Name="TimeSlider1" HorizontalAlignment="Left" VerticalAlignment="Top" 
                               Height="25" Width="375" Margin="12,67,0,0"/&gt;
                
              &lt;!-- TimeSlider.TimeMode.CumulativeFromStart section. --&gt;
              &lt;sdk:Label Height="19" HorizontalAlignment="Left" Margin="393,73,0,0" Name="Label1" VerticalAlignment="Top" Width="241" 
                         Content="TimeMode.CumulativeFromStart:" FontWeight="Bold"/&gt;
              &lt;Button Content="5th position via 'instance-in-time'" Height="23" HorizontalAlignment="Left" Margin="393,93,0,0" 
                      Name="btn1" VerticalAlignment="Top" Width="235" Click="Button_CumulativeFromStart_InstanceInTime"&gt;&lt;/Button&gt;
              &lt;Button Content="5th to 9th position via 'period-of-time'" Height="23" HorizontalAlignment="Left" Margin="393,123,0,0" 
                      Name="btn2" VerticalAlignment="Top" Width="235"  Click="Button_CumulativeFromStart_PeriodOfTime" Background="Lime" AllowDrop="True" /&gt;
                
              &lt;!-- TimeSlider.TimeMode.TimeExtent section. --&gt;
              &lt;sdk:Label Height="19" HorizontalAlignment="Left" Margin="393,169,0,0" Name="Label2" VerticalAlignment="Top" Width="235" 
                         Content="TimeMode.TimeExtent:" FontWeight="Bold"/&gt;
              &lt;Button Content="5th position via 'instance-in-time'" Height="23" HorizontalAlignment="Left" Margin="393,186,0,0" 
                      Name="btn3" VerticalAlignment="Top" Width="235" Click="Button_TimeExtent_InstanceInTime"/&gt;
              &lt;Button Content="5th to 9th position via 'period-of-time'" Height="23" HorizontalAlignment="Left" Margin="393,218,0,0" 
                      Name="btn4" VerticalAlignment="Top" Width="235" Click="Button_TimeExtent_PeriodOfTime" Background="Lime" /&gt;
                
              &lt;!-- TimeSlider.TimeMode.TimeInstant section. --&gt;
              &lt;sdk:Label Height="28" HorizontalAlignment="Left" Margin="403,262,0,0" Name="Label3" VerticalAlignment="Top" Width="212" 
                         Content="TimeMode.TimeInstant:" FontWeight="Bold"/&gt;
              &lt;Button Content="5th position via 'instance-in-time'" Height="23" HorizontalAlignment="Left" Margin="397,280,0,0" 
                      Name="btn5" VerticalAlignment="Top" Width="231" Click="Button_TimeInstant_InstanceInTime" Background="Lime" /&gt;
              &lt;Button Content="5th to 9th position via 'period-of-time'" Height="23" HorizontalAlignment="Left" Margin="397,309,0,0" 
                      Name="btn6" VerticalAlignment="Top" Width="231" Click="Button_TimeInstant_PeriodOfTime"/&gt;
              
              &lt;!-- 
              Useful button to determine the active TimeSlider.Value settings. Use before and after clicking the PlayPauseButton
              on the TimeSlider.
              --&gt;
              &lt;Button Content="Get the TimeSlider.Value" Height="23" HorizontalAlignment="Left" Margin="397,403,0,0" Name="btn7" 
                      VerticalAlignment="Top" Width="231" Click="Button_Get_TimeSliderValue"/&gt;
               
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void FeatureLayer_Initialized(object sender, System.EventArgs e)
            {
              // This function sets up TimeSlider .MinimumValue, .MaximumValue, .Intervals, and the initial starting 
              // .Value that define how the TimeSlider will behave. 
              
              // Get the FeatureLayer with TimeExtent information.
              ESRI.ArcGIS.Client.FeatureLayer myFeatureLayer = (ESRI.ArcGIS.Client.FeatureLayer)sender;
              
              // Obtain the start and end Date/Time values from the TimeSlider.
              DateTime myMinimumDate = myFeatureLayer.TimeExtent.Start;
              DateTime myMaximumDate = myFeatureLayer.TimeExtent.End;
              
              // If you don't set the .MinimumValue and .MaximumValue no TicksMarks get set on the TickBar!
              TimeSlider1.MinimumValue = myMinimumDate;
              TimeSlider1.MaximumValue = myMaximumDate;
              
              // Create a TimeExtent based upon the start and end Date/Times.
              ESRI.ArcGIS.Client.TimeExtent myTimeExtent = new ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate);
              
              // Create an empty Collection of IEnumerable&lt;DateTime&gt; objects.
              System.Collections.Generic.IEnumerable&lt;DateTime&gt; myIEnumerableDates = null;
              
              // Load all of Dates into the Collection of IEnumerable&lt;DateTime&gt; objects using the 
              // TimeSlider.CreateTimeStopsByCount Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByCount(myTimeExtent, 20);
              
              // Set the TimeSlider.Intervals which define the Tick marks along the TimeSlider track to the 
              // IEnumerable&lt;DateTime&gt; objects.
              TimeSlider1.Intervals = myIEnumerableDates;
              
              // Define the initial starting position of the thumb along the TimeSlider.
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(myIEnumerableDates.First);
            }
            
            
            // When using ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart
            // ------------------------------------------------------------------
            private void Button_CumulativeFromStart_InstanceInTime(object sender, System.Windows.RoutedEventArgs e)
            {
              // No observations will initially be will be shown in the Map upon the button click. Once the user clicks 
              // the Play icon of the PlayPauseButton, the TimeSlider1.Value will automatically adjust to a 
              // 'period-of-time' and all observations up to the 6th TickMark of the TickBar will suddenly appear and 
              // then continue to cumulatively display the animation as the thumb moves across the Ticks. If you want 
              // to track a single instance in time use the TimeSlider.TimeMode.Instance enumeration instead.
              //
              // Using this option is not considered a best practice.
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart;
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5));
            }
            
            private void Button_CumulativeFromStart_PeriodOfTime(object sender, System.Windows.RoutedEventArgs e)
            {
              // All observations that fall within the TimeExtent will initially be shown in the Map upon the button click.
              // Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value will continue to use the 
              // 'period-of-time' as the thumb moves across the Ticks.
              //
              // **********************************************************************************************************
              // It is a best practice to use a 'period-of-time' (i.e. a TimeExtent defined with a Start and End Date/Time)
              // TimeSlider.Value setting when using the TimeSlider.TimeMode.CumulativeFromStart.
              // **********************************************************************************************************
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart;
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5), TimeSlider1.Intervals.ElementAt(9));
            }
            
            
            // When using ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent
            // ---------------------------------------------------------
            private void Button_TimeExtent_InstanceInTime(object sender, System.Windows.RoutedEventArgs e)
            {
              // No observations will initially be will be shown in the Map upon the button click. Once the user clicks the 
              // Play icon of the PlayPauseButton, the TimeSlider1.Value will automatically adjust to a 'period-of-time' that 
              // covers the span of two Tick marks. As the animation occurs of the thumbs moving across the Ticks there will
              // always be a span for the 'period-of-time' that covers two Ticks; this can not be changed. If you want to track
              // a single instance in time use the TimeSlider.TimeMode.Instance enumeration instead.
              //
              // Using this option is not considered a best practice.
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent;
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5));
            }
            
            private void Button_TimeExtent_PeriodOfTime(object sender, System.Windows.RoutedEventArgs e)
            {
              // All observations that fall within the TimeExtent will initially be shown in the Map upon the button click.
              // Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value will continue to use the 
              // 'period-of-time' as the thumb moves across the Ticks.
              //
              // *********************************************************************************************************
              // It is a best practice to use a 'period-of-time' (i.e. a TimeExtent defined with a Start and End Date/Time)
              // TimeSlider.Value setting when using the TimeSlider.TimeMode.TimeExtent.
              // *********************************************************************************************************
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent;
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5), TimeSlider1.Intervals.ElementAt(9));
            }
            
            
            // When we have ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant
            // ------------------------------------------------------------
            private void Button_TimeInstant_InstanceInTime(object sender, System.Windows.RoutedEventArgs e)
            {
              // No observations will be initially will be shown in the Map upon the button click. This is because the 
              // 'instance-in-time' is a single Date/Time ("1980/05/17 13:53:41 UTC" in XAML) observation for which there
              // is no earthquake event occuring. Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value 
              // will continue to use the 'instance-in-time' (i.e. a TimeExtent with a single Start or End Date/Time) to display
              // earthquake events. Unfortunately, there will never be any earthquake events that display in this option even
              // though it is the correct one to use for the TimeMode.Instant setting. This is because the calculated TickMark
              // intervals from using the TimeSlider.CreateTimeStopsByCount Shared/Static function never coincide with an
              // actual earthquake event. When using the TimeMode.TimeInstant make sure and use data and/or an algorithm
              // that will produce TickMark intervals that coincide with the data values being displayed.
              //
              // ***************************************************************************************************************
              // It is a best practice to use a 'instance-of-time' (i.e. a TimeExtent defined with just a Start or End Date/Time)
              // TimeSlider.Value setting when using the TimeSlider.TimeMode.TimeInstant
              // ***************************************************************************************************************
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant;
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5));
            }
            
            private void Button_TimeInstant_PeriodOfTime(object sender, System.Windows.RoutedEventArgs e)
            {
              // All observations that fall within the TimeExtent will initially be shown in the Map upon the button click.
              // Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value will continue to use the 
              // 'instance-in-time' (i.e. a TimeExtent with a single Start or End Date/Time) to display
              // earthquake events. Unfortunately, there will never be any earthquake events that display in this option 
              // because the calculated TickMark intervals from using the TimeSlider.CreateTimeStopsByCount Shared/Static 
              // function never coincide with an actual earthquake event. When using the TimeMode.TimeInstant make sure and 
              // use data and/or an algorithm that will produce TickMark intervals that coincide with the data values being 
              // displayed.
              //
              // Using this option is not considered a best practice as the TimeSlider will automatically convert the
              // TimeSlider.Value from a 'period-of-time' to an 'instance-in-time' for the TimeExtent values being emmited.
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant;
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5), TimeSlider1.Intervals.ElementAt(9));
            }
            
            private void Button_Get_TimeSliderValue(object sender, System.Windows.RoutedEventArgs e)
            {
              // Use this function after hitting each button to the the acutal TimeSlider.Value output. It is also
              // helpful to start and then pause the TimeSlider and then use this function to see how the TimeSlider.Value
              // output data changes.
            
              MessageBox.Show(TimeSlider1.Value.ToString());
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub FeatureLayer_Initialized(ByVal sender As System.Object, ByVal e As System.EventArgs)
              
              ' This function sets up TimeSlider .MinimumValue, .MaximumValue, .Intervals, and initial starting .Value 
              ' that define how the TimeSlider will behave. 
              
              ' Get the FeatureLayer with TimeExtent information.
              Dim myFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = sender
              
              ' Obtain the start and end Date/Time values from the TimeSlider.
              Dim myMinimumDate As Date = myFeatureLayer.TimeExtent.Start
              Dim myMaximumDate As Date = myFeatureLayer.TimeExtent.End
              
              ' If you don't set the .MinimumValue and .MaximumValue no TicksMarks get set on the TickBar!
              TimeSlider1.MinimumValue = myMinimumDate
              TimeSlider1.MaximumValue = myMaximumDate
              
              ' Create a TimeExtent based upon the start and end Date/Times.
              Dim myTimeExtent As New ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate)
              
              ' Create an empty Collection of IEnumerable(Of Date) objects.
              Dim myIEnumerableDates As System.Collections.Generic.IEnumerable(Of Date)
              
              ' Load all of Dates into the Collection of IEnumerable(Of Date) objects using the 
              ' TimeSlider.CreateTimeStopsByCount Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByCount(myTimeExtent, 20)
              
              ' Set the TimeSlider.Intervals which define the Tick marks along the TimeSlider track to the 
              ' IEnumerable(Of Date) objects.
              TimeSlider1.Intervals = myIEnumerableDates
              
              ' Define the initial starting position of the thumb along the TimeSlider.
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(myIEnumerableDates.First)
              
            End Sub
              
            
            ' When using ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart
            ' ------------------------------------------------------------------
            Private Sub Button_CumulativeFromStart_InstanceInTime(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' No observations will initially be will be shown in the Map upon the button click. Once the user clicks the 
              ' Play icon of the PlayPauseButton, the TimeSlider1.Value will automatically adjust to a 'period-of-time' and 
              ' all observations up to the 6th TickMark of the TickBar will suddenly appear and then continue to cumulatively
              ' display the animation as the thumb moves across the Ticks. If you want to track a single instance in time 
              ' use the TimeSlider.TimeMode.Instance enumeration instead.
              '
              ' Using this option is not considered a best practice.
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5))
              
            End Sub
            
            Private Sub Button_CumulativeFromStart_PeriodOfTime(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' All observations that fall within the TimeExtent will initially be shown in the Map upon the button click.
              ' Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value will continue to use the 
              ' 'period-of-time' as the thumb moves across the Ticks.
              '
              ' **********************************************************************************************************
              ' It is a best practice to use a 'period-of-time' (i.e. a TimeExtent defined with a Start and End Date/Time)
              ' TimeSlider.Value setting when using the TimeSlider.TimeMode.CumulativeFromStart.
              ' **********************************************************************************************************
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5), TimeSlider1.Intervals.ElementAt(9))
              
            End Sub
            
            
            ' When using ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent
            ' ---------------------------------------------------------
            Private Sub Button_TimeExtent_InstanceInTime(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' No observations will initially be will be shown in the Map upon the button click. Once the user clicks the 
              ' Play icon of the PlayPauseButton, the TimeSlider1.Value will automatically adjust to a 'period-of-time' that 
              ' covers the span of two Tick marks. As the animation occurs of the thumbs moving across the Ticks there will
              ' always be a span for the 'period-of-time' that covers two Ticks; this can not be changed. If you want to track
              ' a single instance in time use the TimeSlider.TimeMode.Instance enumeration instead.
              '
              ' Using this option is not considered a best practice.
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5))
            
            End Sub
            
            Private Sub Button_TimeExtent_PeriodOfTime(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' All observations that fall within the TimeExtent will initially be shown in the Map upon the button click.
              ' Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value will continue to use the 
              ' 'period-of-time' as the thumb moves across the Ticks.
              '
              ' *********************************************************************************************************
              ' It is a best practice to use a 'period-of-time' (i.e. a TimeExtent defined with a Start and End Date/Time)
              ' TimeSlider.Value setting when using the TimeSlider.TimeMode.TimeExtent.
              ' *********************************************************************************************************
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5), TimeSlider1.Intervals.ElementAt(9))
              
            End Sub
            
            
            ' When we have ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant
            ' ------------------------------------------------------------
            Private Sub Button_TimeInstant_InstanceInTime(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' No observations will be initially will be shown in the Map upon the button click. This is because the 
              ' 'instance-in-time' is a single Date/Time ("1980/05/17 13:53:41 UTC" in XAML) observation for which there
              ' is no earthquake event occuring. Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value 
              ' will continue to use the 'instance-in-time' (i.e. a TimeExtent with a single Start or End Date/Time) to display
              ' earthquake events. Unfortunately, there will never be any earthquake events that display in this option even
              ' though it is the correct one to use for the TimeMode.Instant setting. This is because the calculated TickMark
              ' intervals from using the TimeSlider.CreateTimeStopsByCount Shared/Static function never coincide with an
              ' actual earthquake event. When using the TimeMode.TimeInstant make sure and use data and/or an algorithm
              ' that will produce TickMark intervals that coincide with the data values being displayed.
              '
              ' ***************************************************************************************************************
              ' It is a best practice to use a 'instance-of-time' (i.e. a TimeExtent defined with just a Start or End Date/Time)
              ' TimeSlider.Value setting when using the TimeSlider.TimeMode.TimeInstant
              ' ***************************************************************************************************************
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5))
              
            End Sub
            
            Private Sub Button_TimeInstant_PeriodOfTime(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' All observations that fall within the TimeExtent will initially be shown in the Map upon the button click.
              ' Once the user clicks the Play icon of the PlayPauseButton, the TimeSlider1.Value will continue to use the 
              ' 'instance-in-time' (i.e. a TimeExtent with a single Start or End Date/Time) to display
              ' earthquake events. Unfortunately, there will never be any earthquake events that display in this option 
              ' because the calculated TickMark intervals from using the TimeSlider.CreateTimeStopsByCount Shared/Static 
              ' function never coincide with an actual earthquake event. When using the TimeMode.TimeInstant make sure and 
              ' use data and/or an algorithm that will produce TickMark intervals that coincide with the data values being 
              ' displayed.
              '
              ' Using this option is not considered a best practice as the TimeSlider will automatically convert the
              ' TimeSlider.Value from a 'period-of-time' to an 'instance-in-time' for the TimeExtent values being emmited.
              
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.ElementAt(5), TimeSlider1.Intervals.ElementAt(9))
              
            End Sub
            
            Private Sub Button_Get_TimeSliderValue(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' Use this function after hitting each button to the the acutal TimeSlider.Value output. It is also
              ' helpful to start and then pause the TimeSlider and then use this function to see how the TimeSlider.Value
              ' output data changes.
              
              MessageBox.Show(TimeSlider1.Value.ToString)
              
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals">
            <summary>
            Gets or sets the time intervals for the tickmarks.
            </summary>
            <value>The intervals.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.PlaySpeed">
            <summary>
            Gets or sets the how fast the thumb(s) moves across the Tick Marks of the TimeSlider.
            </summary>
            <remarks>
            <para>
            The PlaySpeed Property uses a 
            <a href="http://msdn.microsoft.com/en-us/library/system.timespan(v=VS.95).aspx" target="_blank">TimeSpan</a> Structure 
            to define how quickly the thumb moves across the tick marks on the TimeSlider.
            </para>
            <para>
            The PlaySpeed Attribute in XAML follows the format of "hh:mm:ss" where, hh = hours (0 to 24), mm = minutes (0 to 60), 
            and ss = seconds (0 to 60). You can have fractions of a second by using decimal values. In the following XAML code 
            fragment the PlaySpeed increments the time intervals every tenth of a second (i.e. 0.1). The default PlaySpeed is 
            1 second.
            </para>
            <para>
            <code lang="XAML">
            &lt;esri:TimeSlider Name="TimeSlider1" PlaySpeed="00:00:00.1"/&gt;
            </code>
            </para>
            <para>
            In the code-behind there are several ways to make a TimeSpan using the constructor. The following code examples 
            provides a few different examples that also produce the same time intervals every tenth of a second (i.e. 0.1):
            </para>
            <para>
            VB.NET:
            </para>
            <para>
            <code lang="VB.NET">
            TimeSlider1.PlaySpeed = New TimeSpan(100000) ' ticks
            TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0.1) ' hours, minutes, seconds
            TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0.1) ' days, hours, minutes, seconds
            TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0, 10) ' days, hours, minutes, seconds, milliseconds
            </code>
            </para>
            <para>
            C#:
            </para>
            <para>
            <code lang="CS">
            TimeSlider1.PlaySpeed = new TimeSpan(100000); // ticks
            TimeSlider1.PlaySpeed = new TimeSpan(0, 0, 0.1); // hours, minutes, seconds
            TimeSlider1.PlaySpeed = new TimeSpan(0, 0, 0, 0.1); // days, hours, minutes, seconds
            TimeSlider1.PlaySpeed = new TimeSpan(0, 0, 0, 0, 10); // days, hours, minutes, seconds, milliseconds
            </code>
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the play button on the TimeSlider to start the animation. Then use the regular Microsoft Slider Control to 
            adjust the speed of the animation (i.e. PlaySpeed) on the TimeSlider." 
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Demonstrating how to adjust the TimeSlider.PlaySpeed Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.PlaySpeed.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="63" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                       Width="537" TextWrapping="Wrap" Margin="12,0,0,0" 
                       Text="Click the play button on the TimeSlider to start the animation. Then use the regular Microsoft
                         Slider Control to adjust the speed of the animation (i.e. PlaySpeed) on the TimeSlider." /&gt;
              
              &lt;!--
              Add a Map Control with an ArcGISTiledMapServiceLayer and a FeatureLayer. The ArcGISTiledMapsServiceLayer 
              is the first Layer in Map.LayerCollection and is drawn on the bottom. The FeatureLayer is then added and 
              draws on top. Set the Map.Extent to zoom to the middle of the Atlantic Ocean.
                
              Setting the Map.TimeExtent acts like a Where clause in that only those features/records that fall
              within the set TimeSlider.Value (which is a narrowed TimeExtent) will then be shown. By Binding the 
              Map.TimeExtent to the TimeSlider.Value Property, the Map will automatically update as the thumb(s) on 
              the TimeSlider moves.
              --&gt;
              &lt;esri:Map Name="Map1" Background="White" Height="375" Width="375" Margin="12,93,0,0" 
                        VerticalAlignment="Top" HorizontalAlignment="Left" Extent="-103.04,-13.82,2.08,91.30"
                        TimeExtent="{Binding ElementName=TimeSlider1, Path=Value}"&gt;
                
                &lt;!-- Add an ArcGISTiledMapsServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                      Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/&gt;
                  
                &lt;!--
                The FeatureLayer contains Hurricane data from NOAA as Markers (aka. Points). The Where clause is 
                optional. It is necessary when more that 500/1000 records returned. In ArcGIS Server 9.3.1 and prior, 
                the default maximum is 500 records returned per FeatureLayer. In ArcGIS Server 10 the default is 1000. 
                This setting is configurable per map service using ArcCatalog or ArcGIS Server Manager (on the Parameters
                tab). 
                      
                The Where clause gets only hurricane data for Alberto (a much smaller subset of the entire service).
                
                Specify the Outfields Property to specify which Fields are returned. Specifying the wildcard (*) 
                character will return all Fields. 
                --&gt;
                &lt;esri:FeatureLayer ID="MyFeatureLayer" OutFields="*" Where="EVENTID = 'Alberto'"
                      Url="http://servicesbeta.esri.com/ArcGIS/rest/services/Hurricanes/Hurricanes/MapServer/0" /&gt;
                  
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add a TimeSlider. The initialization of the TimeSlider .Intervals and .Value Properties will be 
              handled in the code-behind when the TimeSlider initializes. 
              
              The remainder of the initialization of the TimeSlider Properties will be handled here in the XAML.
              --&gt;
              &lt;esri:TimeSlider Name="TimeSlider1" HorizontalAlignment="Left" VerticalAlignment="Top" 
                               Height="25" Width="375" Margin="12,67,0,0"
                               MinimumValue="2000/08/04 00:00:01 UTC" MaximumValue="2000/08/24 06:00:01 UTC"
                               Value = "2000/08/04 00:00:01 UTC,2000/08/04 00:00:01 UTC"
                               TimeMode="CumulativeFromStart" Loop="True" 
                               Loaded="TimeSlider1_Loaded"/&gt;
                
              &lt;!-- Add a rectangle and a label for a nice layout. --&gt;
              &lt;Rectangle Height="176" HorizontalAlignment="Left" Margin="396,83,0,0" Name="Rectangle_NiceFormat" 
                         Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="225" /&gt;
              &lt;sdk:Label Height="28" HorizontalAlignment="Left" Margin="444,89,0,0" Name="Label_PlaySpeed" 
                         VerticalAlignment="Top" Width="88" Content="PlaySpeed" FontSize="14" /&gt;
                
              &lt;!-- 
              Add a regular Microsoft Slider Control and a few explanatory labels to adjust the speed
              of the TimeSlider Control. Each time the regular Slider has a different value, call the
              ValueChanged event with some code-behind logic to adjust the TimeSlider.PlaySpeed.
              --&gt;
              &lt;sdk:Label HorizontalAlignment="Left" VerticalAlignment="Top" Margin="418,114,0,346" 
                         Name="Label_Slow" Width="36" Content="Slow"/&gt;
              &lt;Slider HorizontalAlignment="Left" Name="Slider1" Width="48" Orientation="Vertical"
                      Minimum="100000" Maximum="20000000" Value="10000000" Height="80" Margin="406,140,0,0" 
                      VerticalAlignment="Top" ValueChanged="Slider1_ValueChanged"/&gt;
              &lt;sdk:Label Height="17" HorizontalAlignment="Left" Margin="422,225,0,0" Name="Label_Fast" 
                         VerticalAlignment="Top" Width="41" Content="Fast"/&gt;
                
              &lt;!-- 
              The output of the regular Microsoft Slider is in Ticks. Show this to the user. Note the use of
              the StringFormat function on the displayed text in the TextBlock_Ticks. We only need whole number
              values for Tics, not decimal values.
              --&gt;
              &lt;sdk:Label HorizontalAlignment="Left" VerticalAlignment="Top" Margin="476,138,0,0" 
                         Name="Label_Ticks" Width="66" Content="Ticks:"/&gt;
              &lt;TextBlock Height="23" HorizontalAlignment="Left" Margin="476,153,0,0" Name="TextBlock_Ticks" 
                         Text="{Binding ElementName=Slider1,Path=Value,StringFormat=F0}" VerticalAlignment="Top" /&gt;
              
              &lt;!-- 
              The desired input of the TimeSlider.PlaySpeed is a TimeSpan object. Show how the TimeSpan
              string compares to a Tick version. Remember: The TimeSlider.PlaySpeed is displayed in the TimeSpan 
              format of: 'days:hours:seconds'
              --&gt;
              &lt;TextBlock Height="23" HorizontalAlignment="Left" Margin="476,197,0,0" Name="TextBlock_TimeSpan" 
                         Text="{Binding  ElementName=TimeSlider1, Path=PlaySpeed}" VerticalAlignment="Top" Width="107" /&gt;
              &lt;sdk:Label Height="19" HorizontalAlignment="Left" Margin="476,182,0,0" Name="Label_TimeSpan" 
                         VerticalAlignment="Top" Width="66" Content="TimeSpan:" /&gt;
                
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            // A word of caution about using the TimeSlider.Loaded Event. If you are trying to obtain the 
            // TimeExtent from a FeatureLayer, this will not work. The TimeSlider.Loaded occurs before the 
            // FeatureLayer.Intialized Event so the FeatureLayer.TimeExtent will always be Nothing/null. Using the 
            // TimeSlider.Loaded Event is best when the TimeExtent values are known but the TimeSlider.Intervals 
            // just need constructing.
              
            private void TimeSlider1_Loaded(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              // are a Collection of IEnumerable&lt;DateTime&gt;) objects. When the TimeSlider.Intervals Property is set along with 
              // the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. This full 
              // functionality includes buttons for Play, Pause, Forward, and Back.
              
              // Obtain the start and end DateTime values from the TimeSlider named TimeSlider1 that was defined in XAML.
              DateTime myMinimumDate = TimeSlider1.MinimumValue;
              DateTime myMaximumDate = TimeSlider1.MaximumValue;
              
              // Create a TimeExtent based upon the start and end DateTimes.
              ESRI.ArcGIS.Client.TimeExtent myTimeExtent = new ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate);
              
              // Create a new TimeSpan (1 day in our case).
              TimeSpan myTimeSpan = new TimeSpan(1, 0, 0, 0);
              
              // Create an empty Collection of IEnumerable&lt;DateTime&gt; objects.
              System.Collections.Generic.IEnumerable&lt;DateTime&gt; myIEnumerableDates = null;
              
              // Load all of Dates into the Collection of IEnumerable&lt;DateTime&gt; objects using the 
              // TimeSlider.CreateTimeStopsByTimeInterval Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan);
              
              // Set the TimeSlider.Intervals which define the tick marks along the TimeSlider track to the IEnumerable&lt;DateTime&gt; 
              // objects.
              TimeSlider1.Intervals = myIEnumerableDates;
              
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(myIEnumerableDates.First);
              
            }
            
            private void Slider1_ValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs&lt;System.Double&gt; e)
            {
              // This function converts the output from the regular Microsoft Slider Control in Ticks into a the
              // TimeSpan object which the ESRI TimeSlider control likes.
              
              TimeSpan aTimeSpan = new TimeSpan(sender.Value);
              
              // Make sure the TimeSlider has been completely created before we attempt to set a PlaySpeed value.
              if (TimeSlider1 != null)
              {
                // Set the PlaySpeed to the TimeSpan.
                TimeSlider1.PlaySpeed = aTimeSpan;
              }
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            ' A word of caution about using the TimeSlider.Loaded Event. If you are trying to obtain the 
            ' TimeExtent from a FeatureLayer, this will not work. The TimeSlider.Loaded occurs before the 
            ' FeatureLayer.Intialized Event so the FeatureLayer.TimeExtent will always be Nothing/null. Using the 
            ' TimeSlider.Loaded Event is best when the TimeExtent values are known but the TimeSlider.Intervals 
            ' just need constructing.
              
            Private Sub TimeSlider1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              ' are a Collection of IEnumerable(Of Date) objects. When the TimeSlider.Intervals Property is set along with 
              ' the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. This full 
              ' functionality includes buttons for Play, Pause, Forward, and Back.
              
              ' Obtain the start and end Date/Time values from the TimeSlider named TimeSlider1 that was defined in XAML.
              Dim myMinimumDate As Date = TimeSlider1.MinimumValue
              Dim myMaximumDate As Date = TimeSlider1.MaximumValue
              
              ' Create a TimeExtent based upon the start and end date/times.
              Dim myTimeExtent As New ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate)
              
              ' Create a new TimeSpan (1 day in our case).
              Dim myTimeSpan As New TimeSpan(1, 0, 0, 0)
              
              ' Create an empty Collection of IEnumerable(Of Date) objects.
              Dim myIEnumerableDates As System.Collections.Generic.IEnumerable(Of Date)
              
              ' Load all of Dates into the Collection of IEnumerable(Of Date) objects using the 
              ' TimeSlider.CreateTimeStopsByTimeInterval Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan)
              
              ' Set the TimeSlider.Intervals which define the tic marks along the TimeSlider track to the IEnumerable(Of Date) 
              ' objects.
              TimeSlider1.Intervals = myIEnumerableDates
              
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(myIEnumerableDates.First)
              
            End Sub
            
            Private Sub Slider1_ValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double))
              
              ' This function converts the output from the regular Microsoft Slider Control in Ticks into a the
              ' TimeSpan object which the ESRI TimeSlider control likes.
              
              Dim aTimeSpan As New TimeSpan(sender.Value)
              
              ' Make sure the TimeSlider has been completely created before we attempt to set a PlaySpeed value.
              If TimeSlider1 IsNot Nothing Then
                
                ' Set the PlaySpeed to the TimeSpan.
                TimeSlider1.PlaySpeed = aTimeSpan
                
              End If
              
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode">
            <summary>
            Determines how the TimeSlider Control will represent a TimeExtent as the thumb(s) moves across the tick marks.
            </summary>
            <remarks>
            <para>
            The TimeExtent that is shown visually in the TimeSlider Control is corresponds to the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Value">TimeSlider.Value</see> Property. The TimeMode Property is 
            set to one of three Enumerations:
            </para>
            <para>
            <list type="bullet">
            <item>
            <b>TimeMode.CumulativeFromStart</b>: This TimeMode setting will draw all observations on the Map from the oldest 
            to the current as the MaximumThumb crosses a tick mark. It draws observations in a 'cumulative' effect. As the 
            animation occurs, the TimeSlider.Value.Start will remain static but the TimeSlider.Value.End will constantly 
            change. The MinimumThumb is not shown and is implied to be the same as the TimeSlider.Value.Start. The color in 
            the Foreground of the TimeSlider will shade from the TimeSlider.Value.Start through the TimeSlider.Value.End as 
            animation occurs. This is the default TimeMode setting on the TimeSlider. See the following screen shot:
            <para>
            <img border="0" alt="The TimeSlider TimeMode.CumulativeFromStart." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.CumulativeFromStart.png"/>
            </para>
            </item>
            <item>
            <b>TimeMode.TimeExtent</b>: This TimeMode setting will draw only those observations on the Map that fall in a 
            'window of time' as defined by the TimeSlider.Value. As the thumbs (MinimumThumb and MaximumThumb) of the 
            'window of time' move across the tick marks the older observations will disappear and newer ones will appear. 
            As the animation occurs, the TimeSlider.Value.Start (analogous to the MinimumThumb) will constantly change and 
            the TimeSlider.Value.End (analogous to the MaximumThumb) will constantly change but the two difference between 
            the Start and End times will be fixed. The Foreground shading of the TimeSlider will display in between the two 
            thumbs as the animation occurs. See the following screen shot:
            <para>
            <img border="0" alt="The TimeSlider TimeMode.TimeExtent." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.TimeExtent.png"/>
            </para>
            </item>
            <item>
            <b>TimeMode.TimeInstant</b>: This TimeMode setting will draw only the most recent observations on the Map as the 
            thumb(s) (MinimumThumb and MaximumThumb) crosses a tick mark. It draws observations in a 'snapshot' effect. As the 
            animation occurs, the TimeSlider.Value.Start and the TimeSlider.Value.End will be exactly the same but values will 
            change continuously. The MinimumThumb and MaximumThumb overlap each other exactly and give the visual appearance of 
            only one thumb being show to demonstrate the snapshot effect. No Foreground shading occurs in the TimeSlider in the 
            TimeMode.TimeInstant setting. See the following screen shot:
            <para>
            <img border="0" alt="The TimeSlider TimeMode.TimeInstant." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.TimeInstant.png"/>
            </para>
            </item>
            </list>
            </para>        
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the 'Initialize TimeSlider' button to set up the TimeSlider's functionality. Then click the play button on 
            the TimeSlider to view the animation. Click the different TimeMode RadioButtons to see the visual effect on the Map 
            and the TimeSlider.Value Property (aka. TimeExtent).
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Demonstrating the various TimeMode Enumerations of the TimeSlider." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.TimeMode.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="63" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                       Width="537" TextWrapping="Wrap" Margin="12,0,0,0" 
                       Text="Click the 'Initialize TimeSlider' button to set up the TimeSlider's functionality. Then 
                         click the play button on the TimeSlider to view the animation. Click the different 
                         TimeMode RadioButtons to see the visual effect on the Map and the TimeSlider.Value 
                         Property (aka. TimeExtent)." /&gt;
              
              &lt;!--
              Add a Map Control with an ArcGISTiledMapServiceLayer and a FeatureLayer. The ArcGISTiledMapsServiceLayer 
              is the first Layer in Map.LayerCollection and is drawn on the bottom. The FeatureLayer is then added and 
              draws on top. Set the Map.Extent to zoom to the middle of the Atlantic Ocean.
                  
              Setting the Map.TimeExtent acts like a Where clause in that only those features/records that fall
              within the set TimeSlider.Value (which is a narrowed TimeExtent) will then be shown. By Binding the 
              Map.TimeExtent to the TimeSlider.Value Property, the Map will automatically update as the thumb on 
              the TimeSlider moves.
              --&gt;
              &lt;esri:Map Name="Map1" Background="White" Height="375" Width="375" Margin="12,93,0,0" 
                        VerticalAlignment="Top" HorizontalAlignment="Left" Extent="-69.78,0.52,10.01,80.33"
                        TimeExtent="{Binding ElementName=TimeSlider1, Path=Value}"&gt;
                
                &lt;!-- Add an ArcGISTiledMapsServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                      Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/&gt;
                  
                &lt;!--
                The FeatureLayer contains Hurricane data from NOAA as Markers (aka. Points). The Where clause is 
                optional. It is necessary when more that 500/1000 records returned. In ArcGIS Server 9.3.1 and prior, 
                the default maximum is 500 records returned per FeatureLayer. In ArcGIS Server 10 the default is 1000. 
                This setting is configurable per map service using ArcCatalog or ArcGIS Server Manager (on the Parameters
                tab). 
                  
                The Where clause gets only hurricane data for Alberto (a much smaller subset of the entire service).
                  
                Specify the Outfields Property to specify which Fields are returned. Specifying the wildcard (*) 
                character will return all Fields. 
                --&gt;
                &lt;esri:FeatureLayer ID="MyFeatureLayer" Where="EVENTID = 'Alberto'" OutFields="*"
                      Url="http://servicesbeta.esri.com/ArcGIS/rest/services/Hurricanes/Hurricanes/MapServer/0"/&gt;
                  
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add a TimeSlider. The initialization of the TimeSlider will be handled in the code-behind when the
              user clicks the Button_InitializeTimeSlider. The initialization of the TimeSlider will handle setting
              the Properties of .MinimumValue, .MaximumValue, .Intervals, .PlaySpeed, .Loop, and .TimeMode.
              --&gt;
              &lt;esri:TimeSlider Name="TimeSlider1" HorizontalAlignment="Left" VerticalAlignment="Top" 
                               Height="25" Width="375" Margin="12,67,0,0"/&gt;
                
              &lt;!-- Add a Button to initialize the TimeSlider. The Click Event has associated code-behind. --&gt;
              &lt;Button Name="Button_InitializeTimeSlider" Content="Initialize TimeSlider" Height="23" Width="170" 
                      HorizontalAlignment="Left" VerticalAlignment="Top" Margin="401,69,0,0" 
                      Click="Button_InitializeTimeSlider_Click" /&gt;
                
              &lt;!--
              Add three RadioButtons to control the TimeMode Property on the TimeSlider. Each RadioButton has
              a Click event with associated code-behind. 
              --&gt;
              &lt;sdk:Label Name="Label_TimeMode" Content="TimeMode:" Height="28" Width="120" Margin="401,117,0,0" 
                         VerticalAlignment="Top" HorizontalAlignment="Left" /&gt;
              &lt;RadioButton Name="RadioButton_CumulativeFromStart" Content="CumulativeFromStart" Height="16" 
                           HorizontalAlignment="Left" VerticalAlignment="Top" Margin="401,136,0,0" 
                           Click="RadioButton_CumulativeFromStart_Click"/&gt;
              &lt;RadioButton Name="RadioButton_TimeExtent" Content="TimeExtent" Height="16" 
                           HorizontalAlignment="Left" VerticalAlignment="Top" Margin="401,158,0,0" 
                           Click="RadioButton_TimeExtent_Click"/&gt;
              &lt;RadioButton Name="RadioButton_TimeInstant" Content="TimeInstant" Height="16" 
                           HorizontalAlignment="Left" VerticalAlignment="Top" Margin="401,180,0,0" 
                           Click="RadioButton_TimeInstant_Click"/&gt;
              
              &lt;!--
              Add a TextBlock to display the TimeSlider.Value.Start. The TextBlock.Content Property uses Binding
              to automatically update any changes from the TimeSlider.Value.Start as the thumb of the TimeSlider
              moves. Depending on the TimeSlider.TimeMode setting you will notice different behavior of what
              gets displayed in the TextBlock.
              --&gt;
              &lt;sdk:Label Name="Label_TimeSliderValueStart" Content="TimeSlider.Value.Start:" Margin="403,229,0,0" 
                         Height="28" Width="131" HorizontalAlignment="Left" VerticalAlignment="Top" /&gt;
              &lt;TextBlock Name="TextBlock_StartTime" Text="{Binding ElementName=TimeSlider1, Path=Value.Start}" 
                         HorizontalAlignment="Left" VerticalAlignment="Top" Width="175" Height="23" Margin="401,248,0,0" /&gt;
              
              &lt;!--
              Add a TextBlock to display the TimeSlider.Value.End. The TextBlock.Content Property uses Binding
              to automatically update any changes from the TimeSlider.Value.End as the thumb of the TimeSlider
              moves. Depending on the TimeSlider.TimeMode setting you will notice different behavior of what
              gets displayed in the TextBlock.
              --&gt;
              &lt;sdk:Label Name="Label_TimeSliderValueEnd" Content="TimeSlider.Value.End:" Margin="401,279,0,0" 
                         Height="29" Width="120" HorizontalAlignment="Left" VerticalAlignment="Top" /&gt;
              &lt;TextBlock Name="TextBlock_EndTime" Text="{Binding ElementName=TimeSlider1, Path=Value.End}" 
                         HorizontalAlignment="Left" VerticalAlignment="Top" Width="175" Height="23" Margin="401,295,0,0" /&gt;
              
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button_InitializeTimeSlider_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function sets up the various initialization Properties for the TimeSlider (.MinimumValue, 
              // .MaximumValue, .Intervals, .PlaySpeed, .Loop and .TimeMode). 
              
              // NOTE: 
              // The bare minimum Properties that need to be set on the TimeSlider in order to have functioning 
              // interaction between the TimeSlider and Map Control's are .MimimumValue, .MaximumValue, and 
              // .Value (as well as binding the Map.TimeExtent to the TimeSlider.Value). This will give a 
              // TimeSlider where the user can move the thumb(s) and have the Map Control respond accordingly. 
              // But having only this bare minimum will not provide the full functionality of the PlayPauseButton, 
              // NextButton, and PreviousButton being visible. In order to have the full functionality of the 
              // TimeSlider the .Intervals Property must also be set.
                 
              // Obtain the FeatureLayer that has the temporal data in the Map Control.
              ESRI.ArcGIS.Client.FeatureLayer theFeatureLayer = Map1.Layers["MyFeatureLayer"];
              
              // Using the custom GetTimeExtentFromGraphicCollection function, obtain the a TimeExtent (i.e. a span of time) 
              // from the GraphicCollection of the FeatureLayer. The FeatureLayer.TimeExtent Property could have been used 
              // but that would have returned the entire TimeExtent of the FeatureLayer map service. Since our FeatureLayer
              // was defined in XAML to have a Where clause to restrict the data returned to be only those temporal events
              // associated with hurricane Alberto, we only want the TimeExtent associated with hurricane Alberto. The 
              // GetTimeExtentFromGraphicCollection function obtains the TimeExtent for just the features in the 
              // GraphicCollection associated with hurricane Alberto and not the entire FeatureLayer.TimeExtent.
              ESRI.ArcGIS.Client.GraphicCollection theGraphicCollection = theFeatureLayer.Graphics;
              ESRI.ArcGIS.Client.TimeExtent theTimeExtent = GetTimeExtentFromGraphicCollection(theGraphicCollection);
              
              // Set the TimeSlider's .MinimumValue and .MaximumValue Properties from Alberto's TimeExtent.
              DateTime theStartDate = theTimeExtent.Start;
              DateTime theEndDate = theTimeExtent.End;
              TimeSlider1.MinimumValue = theStartDate;
              TimeSlider1.MaximumValue = theEndDate;
              
              // Create a new TimeSpan (6 hours in our case). 
              TimeSpan theTimeSpan = new TimeSpan(0, 6, 0, 0);
              
              // Create an empty Collection of IEnumerable&lt;DateTime&gt; objects.
              System.Collections.Generic.IEnumerable&lt;Date&gt; theIEnumerableDates = null;
              
              // Load all of DateTimes into the IEnumerable&lt;DateTime&gt; object using the Shared/Static function
              // TimeSlider.CreateTimeStopsByTimeInterval.
              theIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(theTimeExtent, theTimeSpan);
              
              // Set the TimeSlider.Intervals to define the tick marks along the TimeSlider track from the IEnumerable&lt;DateTime&gt; 
              // object. Each tick mark will be 6 hours apart starting from theTimeExtent.Start and ending with theTimeExtent.End.
              TimeSlider1.Intervals = theIEnumerableDates;
              
              // Initialize the thumb's initial start position of the TimeSlider to be the leftmost. The individual DateTime objects 
              // within the IEnumerable&lt;DateTime&gt; are ordered in the from oldest (.First) to newest (.Last). You could have also
              // used theTimeExtent.Start.
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(theIEnumerableDates.First);
              
              // Set the TimeSlider.TimeMode to CumulativeFromStart and set the RadioButton_CumulativeFromStart as being
              // checked. Users can interactively change the TimeMode and see the different effects once the TimeSlider is 
              // initialized.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart;
              RadioButton_CumulativeFromStart.IsChecked = true;
              
              // The default TimeSlider.Play Speed is 1 second but we want a faster redraw of the Graphics, so we are setting
              // it to 1/2 of a second. The following 4 constructors all produce the same results: 
              TimeSlider1.PlaySpeed = new TimeSpan(500000); // ticks
              //TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0.5); // hours, minutes, seconds
              //TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0.5); // days, hours, minutes, seconds
              //TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0, 50); // days, hours, minutes, seconds, milliseconds
              
              // Enable continuous playback of the TimeSlider.
              TimeSlider1.Loop = true;
            }
              
            public ESRI.ArcGIS.Client.TimeExtent GetTimeExtentFromGraphicCollection(ESRI.ArcGIS.Client.GraphicCollection myGraphicCollection)
            {
              // This function obtains the a TimeExtent (i.e. a span of time) from a GraphicCollection. An assumption is made
              // specific to the FeatureLayer in this example that an Attribute called 'Date_Time' is present (which is the
              // Date of the temporal observation of the hurricane). It is also assumed that ALL of the temporal observations
              // have valid DateTime information. If there are any temporal observations that have Nothing/null values, the logic
              // of this function will need modification.
              
              // Define new variables to hold the start and end Dates of all the temporal observations in the GraphicCollection.
              DateTime startDate = new DateTime();
              DateTime endDate = new DateTime();
              
              // Loop through each Graphic in the GraphicCollection.
              foreach (ESRI.ArcGIS.Client.Graphic theGraphic in myGraphicCollection)
              {
                // Obtain the DateTime of the temporal observation from the Graphic.Attribute. If you use your own map service 
                // dataset, you will need to change the Attribute field name accordingly.
                DateTime aDate = theGraphic.Attributes["Date_Time"];
                
                // Seed the initial startDate with the first observation in the GraphicCollection.
                if (startDate == new DateTime())
                {
              	startDate = aDate;
                }
                
                // Seed the initial endDate with the first observation in the GraphicCollection.
                if (endDate == new DateTime())
                {
              	endDate = aDate;
                }
              
                // If the aDate is earlier than startDate then set it to the startDate. 
                if (aDate &lt; startDate)
                {
              	startDate = aDate;
                }
                
                // If the aDate is later than endDate then set it to the endDate. 
                if (aDate &gt; endDate)
                {
              	endDate = aDate;
                }
              }
              
              // Construct the TimeExtent from the startDate and endDate.
              ESRI.ArcGIS.Client.TimeExtent theTimeExtent = new ESRI.ArcGIS.Client.TimeExtent(startDate, endDate);
              
              // Return the TimeExtent to the caller.
              return theTimeExtent;
            }
              
            private void RadioButton_CumulativeFromStart_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This TimeMode setting will draw all points on the Map from the oldest observation to the current
              // observation as the thumb crosses a tick mark. It draws observations in a 'cumulative' effect. As 
              // the animation occurs, the TimeSlider.Value.Start will remain static but the TimeSlider.Value.End
              // will constantly change.
              
              // Set the TimeSlider.TimeMode to the TimeMode.CumulativeFromStart enumeration.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart;
              
              // Move the thumb of the TimeSlider to the leftmost position.
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.First);
            }
              
            private void RadioButton_TimeExtent_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This TimeMode setting will draw only those points on the Map that fall in a 'window of time' as defined
              // by the TimeSlider.Value. As the thumb of the 'window of time' moves across the tick marks the older 
              // observations will disappear and newer ones will appear. As the animation occurs, the TimeSlider.Value.Start 
              // will constantly change and the TimeSlider.Value.End will constantly change but the two difference between 
              // the Start and End times will be fixed.
              
              // Set the TimeSlider.TimeMode to the TimeMode.Time enumeration.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent;
              
              // Get the IEnumerable&lt;DateTime&gt; from the TimeSlider.Intervals Property.
              IEnumerable&lt;DateTime&gt; myIntervals = TimeSlider1.Intervals;
              
              // Obtain the first DateTime observation in the IEnumerable&lt;DateTime&gt;, which is the oldest DateTime. 
              DateTime theStartDate = myIntervals.First();
              
              // Set the thumb of the TimeSlider to be a 'window of time' that covers a 2 day (48 hours) period. The 
              // thumb that represents a 'window of time' will be moved to the leftmost position. 
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(theStartDate, theStartDate.AddHours(48));
            }
              
            private void RadioButton_TimeInstant_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This TimeMode setting will draw only the most recent observations on the Map as the thumb crosses 
              // a tick mark. It draws observations in a 'snapshot' effect. As the animation occurs, the 
              // TimeSlider.Value.Start and the TimeSlider.Value.End will be exactly the same but values will change
              // continuously.
              
              // Set the TimeSlider.TimeMode to the TimeMode.TimeInstant enumeration.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant;
              
              // Move the thumb of the TimeSlider to the leftmost position.
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.First);
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button_InitializeTimeSlider_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This function sets up the various initialization Properties for the TimeSlider (.MinimumValue, 
              ' .MaximumValue, .Intervals, .PlaySpeed, .Loop and .TimeMode). 
              
              ' NOTE: 
              ' The bare minimum Properties that need to be set on the TimeSlider in order to have functioning 
              ' interaction between the TimeSlider and Map Control's are .MimimumValue, .MaximumValue, and 
              ' .Value (as well as binding the Map.TimeExtent to the TimeSlider.Value). This will give a 
              ' TimeSlider where the user can move the thumb(s) and have the Map Control respond accordingly. 
              ' But having only this bare minimum will not provide the full functionality of the PlayPauseButton, 
              ' NextButton, and PreviousButton being visible. In order to have the full functionality of the 
              ' TimeSlider the .Intervals Property must also be set.
              
              ' Obtain the FeatureLayer that has the temporal data in the Map Control.
              Dim theFeatureLayer As ESRI.ArcGIS.Client.FeatureLayer = Map1.Layers.Item("MyFeatureLayer")
              
              ' Using the custom GetTimeExtentFromGraphicCollection function, obtain the a TimeExtent (i.e. a span of time) 
              ' from the GraphicCollection of the FeatureLayer. The FeatureLayer.TimeExtent Property could have been used 
              ' but that would have returned the entire TimeExtent of the FeatureLayer map service. Since our FeatureLayer
              ' was defined in XAML to have a Where clause to restrict the data returned to be only those temporal events
              ' associated with hurricane Alberto, we only want the TimeExtent associated with hurricane Alberto. The 
              ' GetTimeExtentFromGraphicCollection function obtains the TimeExtent for just the features in the 
              ' GraphicCollection associated with hurricane Alberto and not the entire FeatureLayer.TimeExtent.
              Dim theGraphicCollection As ESRI.ArcGIS.Client.GraphicCollection = theFeatureLayer.Graphics
              Dim theTimeExtent As ESRI.ArcGIS.Client.TimeExtent = GetTimeExtentFromGraphicCollection(theGraphicCollection)
              
              ' Set the TimeSlider's .MinimumValue and .MaximumValue Properties from Alberto's TimeExtent.
              Dim theStartDate As Date = theTimeExtent.Start
              Dim theEndDate As Date = theTimeExtent.End
              TimeSlider1.MinimumValue = theStartDate
              TimeSlider1.MaximumValue = theEndDate
              
              ' Create a new TimeSpan (6 hours in our case). 
              Dim theTimeSpan As New TimeSpan(0, 6, 0, 0)
              
              ' Create an empty Collection of IEnumerable(Of Date) objects.
              Dim theIEnumerableDates As System.Collections.Generic.IEnumerable(Of Date)
              
              ' Load all of Dates into the IEnumerable(Of Date) object using the Shared/Static function
              ' TimeSlider.CreateTimeStopsByTimeInterval.
              theIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(theTimeExtent, theTimeSpan)
               
              ' Set the TimeSlider.Intervals to define the tick marks along the TimeSlider track from the IEnumerable(Of Date) 
              ' object. Each tick mark will be 6 hours apart starting from theTimeExtent.Start and ending with theTimeExtent.End.
              TimeSlider1.Intervals = theIEnumerableDates
              
              ' Initialize the thumb's initial start position of the TimeSlider to be the leftmost. The individual Date objects 
              ' within the IEnumerable(Of Date) are ordered in the from oldest (.First) to newest (.Last). You could have also
              ' used theTimeExtent.Start.
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(theIEnumerableDates.First)
            
              ' Set the TimeSlider.TimeMode to CumulativeFromStart and set the RadioButton_CumulativeFromStart as being
              ' checked. Users can interactively change the TimeMode and see the different effects once the TimeSlider is 
              ' initialized.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart
              RadioButton_CumulativeFromStart.IsChecked = True
              
              ' The default TimeSlider.Play Speed is 1 second but we want a faster redraw of the Graphics, so we are setting
              ' it to 1/2 of a second. The following 4 constructors all produce the same results: 
              TimeSlider1.PlaySpeed = New TimeSpan(500000) ' ticks
              'TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0.5) ' hours, minutes, seconds
              'TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0.5) ' days, hours, minutes, seconds
              'TimeSlider1.PlaySpeed = New TimeSpan(0, 0, 0, 0, 50) ' days, hours, minutes, seconds, milliseconds
              
              ' Enable continuous playback of the TimeSlider.
              TimeSlider1.Loop = True
              
            End Sub
            
            Public Function GetTimeExtentFromGraphicCollection(ByVal myGraphicCollection As ESRI.ArcGIS.Client.GraphicCollection) As ESRI.ArcGIS.Client.TimeExtent
              
              ' This function obtains the a TimeExtent (i.e. a span of time) from a GraphicCollection. An assumption is made
              ' specific to the FeatureLayer in this example that an Attribute called 'Date_Time' is present (which is the
              ' Date of the temporal observation of the hurricane). It is also assumed that ALL of the temporal observations
              ' have valid Date information. If there are any temporal observations that have Nothing/null values, the logic
              ' of this function will need modification.
               
              ' Define new variables to hold the start and end Dates of all the temporal observations in the GraphicCollection.
              Dim startDate As New Date
              Dim endDate As New Date
              
              ' Loop through each Graphic in the GraphicCollection.
              For Each theGraphic As ESRI.ArcGIS.Client.Graphic In myGraphicCollection
              
                ' Obtain the Date of the temporal observation from the Graphic.Attribute. If you use your own map service 
                ' dataset, you will need to change the Attribute field name accordingly.
                Dim aDate As Date = theGraphic.Attributes.Item("Date_Time")
                
                ' Seed the initial startDate with the first observation in the GraphicCollection.
                If startDate = Nothing Then
                  startDate = aDate
                End If
                
                ' Seed the initial endDate with the first observation in the GraphicCollection.
                If endDate = Nothing Then
                  endDate = aDate
                End If
                
                ' If the aDate is earlier than startDate then set it to the startDate. 
                If aDate &lt; startDate Then
                  startDate = aDate
                End If
                
                ' If the aDate is later than endDate then set it to the endDate. 
                If aDate &gt; endDate Then
                  endDate = aDate
                End If
                 
              Next
               
              ' Construct the TimeExtent from the startDate and endDate.
              Dim theTimeExtent As New ESRI.ArcGIS.Client.TimeExtent(startDate, endDate)
                 
              ' Return the TimeExtent to the caller.
              Return theTimeExtent
               
            End Function
             
            Private Sub RadioButton_CumulativeFromStart_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
               
              ' This TimeMode setting will draw all points on the Map from the oldest observation to the current
              ' observation as the thumb crosses a tick mark. It draws observations in a 'cumulative' effect. As 
              ' the animation occurs, the TimeSlider.Value.Start will remain static but the TimeSlider.Value.End
              ' will constantly change.
              
              ' Set the TimeSlider.TimeMode to the TimeMode.CumulativeFromStart enumeration.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart
              
              ' Move the thumb of the TimeSlider to the leftmost position.
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.First)
              
            End Sub
              
            Private Sub RadioButton_TimeExtent_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This TimeMode setting will draw only those points on the Map that fall in a 'window of time' as defined
              ' by the TimeSlider.Value. As the thumb of the 'window of time' moves across the tic marks the older 
              ' observations will disappear and newer ones will appear. As the animation occurs, the TimeSlider.Value.Start 
              ' will constantly change and the TimeSlider.Value.End will constantly change but the two difference between 
              ' the Start and End times will be fixed.
              
              ' Set the TimeSlider.TimeMode to the TimeMode.Time enumeration.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent
              
              ' Get the IEnumerable(Of Date) from the TimeSlider.Intervals Property.
              Dim myIntervals As IEnumerable(Of Date) = TimeSlider1.Intervals
              
              ' Obtain the first Date observation in the IEnumerable(Of Date), which is the oldest Date. 
              Dim theStartDate As Date = myIntervals.First()
              
              ' Set the thumb of the TimeSlider to be a 'window of time' that covers a 2 day (48 hours) period. The 
              ' thumb that represents a 'window of time' will be moved to the leftmost position. 
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(theStartDate, theStartDate.AddHours(48))
              
            End Sub
              
            Private Sub RadioButton_TimeInstant_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' This TimeMode setting will draw only the most recent observations on the Map as the thumb crosses 
              ' a tick mark. It draws observations in a 'snapshot' effect. As the animation occurs, the 
              ' TimeSlider.Value.Start and the TimeSlider.Value.End will be exactly the same but values will change
              ' continuously.
              
              ' Set the TimeSlider.TimeMode to the TimeMode.TimeInstant enumeration.
              TimeSlider1.TimeMode = ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant
              
              ' Move the thumb of the TimeSlider to the leftmost position.
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(TimeSlider1.Intervals.First)
              
            End Sub
            </code>
            </example>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChanged">
            <summary>
            Occurs when the selected time extent has changed.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.IsPlaying">
            <summary>
            Gets or set as Boolean indicating whether the TimeSlider is playing through the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Intervals">Intervals</see> of the TickBar.
            </summary>
            <remarks>
            <para>
            A value of True means the animating of the thumb(s) is occurring. A value of False means no animation is 
            occurring. The default TimeSlider Control uses a ToggleButton for the PlayPauseButton to control the 
            animations. When the Pause icon is visible that means animation is occurring (i.e. .IsPlaying=True). When 
            the Play icon is visible, that means the animation has stopped (i.e. .IsPlaying=False). See the following 
            screen shot for a visual depiction:
            </para>
            <para>
            <img border="0" alt="The PlayPauseButton and the .IsPlaying Property of the TimeSlider Control." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.IsPlaying.png"/>
            </para>
            <para>
            Under most circumstances it is not necessary to set the IsPlaying Property via code as this Property is 
            automatically managed as part of the default TimeSlider Control. It is possible to modify the default behavior 
            of the PlayPauseButton sub-component of the TimeSlider by editing its Control Template; see the code example in 
            this document.  
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Once the FeatureLayer has initialized the customized TimeSlider will have all of the necessary Properties 
            set in order to run. The normal PlayPauseButton has been removed as part of the Control Template of the 
            TimeSlider. Use the 'Start' and 'Stop' buttons to control the functionality of the TimeSlider's animation 
            via the .IsPlaying Property.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Demonstrating the TimeSlider.IsPlaying Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.IsPlaying2.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;!-- 
            Don't forget to add the xml namespace reference:
            xmlns:esriToolkitPrimitives="clr-namespace:ESRI.ArcGIS.Client.Toolkit.Primitives;assembly=ESRI.ArcGIS.Client.Toolkit" 
            --&gt;
              
            &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
              &lt;Grid.Resources&gt;
              
                &lt;!--
                The majority of the XAML that defines the ControlTemplate for the Bookmark Control was obtained
                by using Microsoft Blend. See the blog post entitled: 'Use control templates to customize the 
                look and feel of ArcGIS controls' at the following Url for general How-To background:
                http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx
                --&gt;
                &lt;Style x:Key="TimeSliderStyle1" TargetType="esri:TimeSlider"&gt;
                  &lt;Setter Property="IsTabStop" Value="True"/&gt;
                  &lt;Setter Property="Foreground"&gt;
                    &lt;Setter.Value&gt;
                      &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"&gt;
                        &lt;GradientStop Color="#00ffffff"/&gt;
                        &lt;GradientStop Color="#FF326FC0" Offset="0.5"/&gt;
                        &lt;GradientStop Color="#00ffffff" Offset="1"/&gt;
                      &lt;/LinearGradientBrush&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                  &lt;Setter Property="Background" Value="White"/&gt;
                  &lt;Setter Property="BorderBrush" Value="Black"/&gt;
                  &lt;Setter Property="BorderThickness" Value="1"/&gt;
                  &lt;Setter Property="Template"&gt;
                    &lt;Setter.Value&gt;
                      &lt;ControlTemplate TargetType="esri:TimeSlider"&gt;
                        &lt;Grid&gt;
                          &lt;Grid.Resources&gt;
                            
                            &lt;!-- 
                            Comment out the entire 'Style' section of the PlayPauseToggleButtonStyle since it is not used 
                            in our example!
                            --&gt;
                            &lt;!--
                            &lt;Style x:Key="PlayPauseToggleButtonStyle" TargetType="ToggleButton"&gt;
                              &lt;Setter Property="Background" Value="#FF1F3B53"/&gt;
                              &lt;Setter Property="Foreground" Value="#FF000000"/&gt;
                              &lt;Setter Property="Padding" Value="3"/&gt;
                              &lt;Setter Property="BorderThickness" Value="1"/&gt;
                              &lt;Setter Property="BorderBrush"&gt;
                                &lt;Setter.Value&gt;
                                  &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"&gt;
                                    &lt;GradientStop Color="#FFA3AEB9" Offset="0"/&gt;
                                    &lt;GradientStop Color="#FF8399A9" Offset="0.375"/&gt;
                                    &lt;GradientStop Color="#FF718597" Offset="0.375"/&gt;
                                    &lt;GradientStop Color="#FF617584" Offset="1"/&gt;
                                  &lt;/LinearGradientBrush&gt;
                                &lt;/Setter.Value&gt;
                              &lt;/Setter&gt;
                              &lt;Setter Property="Template"&gt;
                                &lt;Setter.Value&gt;
                                  &lt;ControlTemplate TargetType="ToggleButton"&gt;
                                    &lt;Grid&gt;
                                      &lt;VisualStateManager.VisualStateGroups&gt;
                                        &lt;VisualStateGroup x:Name="CommonStates"&gt;
                                          &lt;VisualState x:Name="Normal"/&gt;
                                          &lt;VisualState x:Name="MouseOver"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundAnimation"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Pressed"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Background"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#FF6DBDD1"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundAnimation"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#D8FFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#C6FFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#8CFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#3FFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Disabled"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="DisabledVisualElement"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value=".55"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                        &lt;/VisualStateGroup&gt;
                                        &lt;VisualStateGroup x:Name="CheckStates"&gt;
                                          &lt;VisualState x:Name="Checked"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PlayContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Collapsed&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PauseContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Unchecked"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PlayContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PauseContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Collapsed&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                        &lt;/VisualStateGroup&gt;
                                        &lt;VisualStateGroup x:Name="FocusStates"&gt;
                                          &lt;VisualState x:Name="Focused"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                             &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Unfocused"/&gt;
                                        &lt;/VisualStateGroup&gt;
                                      &lt;/VisualStateManager.VisualStateGroups&gt;
                                      &lt;Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="White" CornerRadius="3"&gt;
                                        &lt;Grid Background="{TemplateBinding Background}" Margin="1"&gt;
                                          &lt;Border x:Name="BackgroundAnimation" Background="#FF448DCA" Opacity="0"/&gt;
                                          &lt;Rectangle x:Name="BackgroundGradient"&gt;
                                            &lt;Rectangle.Fill&gt;
                                              &lt;LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0"&gt;
                                                &lt;GradientStop Color="#FFFFFFFF" Offset="0"/&gt;
                                                &lt;GradientStop Color="#F9FFFFFF" Offset="0.375"/&gt;
                                                &lt;GradientStop Color="#E5FFFFFF" Offset="0.625"/&gt;
                                                &lt;GradientStop Color="#C6FFFFFF" Offset="1"/&gt;
                                              &lt;/LinearGradientBrush&gt;
                                            &lt;/Rectangle.Fill&gt;
                                          &lt;/Rectangle&gt;
                                        &lt;/Grid&gt;
                                      &lt;/Border&gt;
                                      &lt;Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"&gt;
                                        &lt;Grid x:Name="PlayContent" FlowDirection="LeftToRight" Height="9" Margin="1" Width="9"&gt;
                                          &lt;Path Data="M0,0 L0,9 9,4.5 0,0" Fill="{TemplateBinding Foreground}"/&gt;
                                        &lt;/Grid&gt;
                                        &lt;Grid x:Name="PauseContent" Height="9" Margin="1" Visibility="Collapsed" Width="9"&gt;
                                          &lt;Rectangle Fill="{TemplateBinding Foreground}" HorizontalAlignment="Left" Width="3"/&gt;
                                          &lt;Rectangle Fill="{TemplateBinding Foreground}" HorizontalAlignment="Right" Width="3"/&gt;
                                        &lt;/Grid&gt;
                                      &lt;/Grid&gt;
                                      &lt;Rectangle x:Name="DisabledVisualElement" Fill="#FFFFFFFF" IsHitTestVisible="false" Opacity="0" RadiusY="3" RadiusX="3"/&gt;
                                      &lt;Rectangle x:Name="FocusVisualElement" IsHitTestVisible="false" Margin="1" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FF6DBDD1" StrokeThickness="1"/&gt;
                                    &lt;/Grid&gt;
                                  &lt;/ControlTemplate&gt;
                                &lt;/Setter.Value&gt;
                              &lt;/Setter&gt;
                            &lt;/Style&gt;
                            --&gt;
                            
                          &lt;/Grid.Resources&gt;
                          &lt;Grid.ColumnDefinitions&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                            &lt;ColumnDefinition Width="*"/&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                          &lt;/Grid.ColumnDefinitions&gt;
                          &lt;VisualStateManager.VisualStateGroups&gt;
                            &lt;VisualStateGroup x:Name="CommonStates"&gt;
                              &lt;VisualState x:Name="Normal"/&gt;
                              &lt;VisualState x:Name="MouseOver"/&gt;
                              &lt;VisualState x:Name="Disabled"&gt;
                                &lt;Storyboard&gt;
                                  &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="HorizontalTrackRectangleDisabledOverlay"&gt;
                                    &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                      &lt;DiscreteObjectKeyFrame.Value&gt;
                                        &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                      &lt;/DiscreteObjectKeyFrame.Value&gt;
                                    &lt;/DiscreteObjectKeyFrame&gt;
                                  &lt;/ObjectAnimationUsingKeyFrames&gt;
                                  &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="MinimumThumbDisabledOverlay"&gt;
                                    &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                      &lt;DiscreteObjectKeyFrame.Value&gt;
                                        &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                      &lt;/DiscreteObjectKeyFrame.Value&gt;
                                    &lt;/DiscreteObjectKeyFrame&gt;
                                  &lt;/ObjectAnimationUsingKeyFrames&gt;
                                  &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="MaximumThumbDisabledOverlay"&gt;
                                    &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                      &lt;DiscreteObjectKeyFrame.Value&gt;
                                        &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                      &lt;/DiscreteObjectKeyFrame.Value&gt;
                                    &lt;/DiscreteObjectKeyFrame&gt;
                                  &lt;/ObjectAnimationUsingKeyFrames&gt;
                                &lt;/Storyboard&gt;
                              &lt;/VisualState&gt;
                            &lt;/VisualStateGroup&gt;
                            &lt;VisualStateGroup x:Name="FocusStates"&gt;
                              &lt;VisualState x:Name="Focused"&gt;
                                &lt;Storyboard&gt;
                                  &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"&gt;
                                    &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                  &lt;/DoubleAnimationUsingKeyFrames&gt;
                                &lt;/Storyboard&gt;
                              &lt;/VisualState&gt;
                              &lt;VisualState x:Name="Unfocused"/&gt;
                            &lt;/VisualStateGroup&gt;
                          &lt;/VisualStateManager.VisualStateGroups&gt;
                          
                          &lt;!-- 
                          Comment out the 'PlayPauseButton' since we will control the functionality of the TimeSlider via
                          our own custom buttons (Button_Start and Button_Stop) using the TimeSlider.IsPlaying Property
                          in the code-behind.
                          --&gt;
                          &lt;!--
                          &lt;ToggleButton x:Name="PlayPauseButton" Grid.Column="0" Height="17" Style="{StaticResource PlayPauseToggleButtonStyle}" VerticalAlignment="Center" Width="17"/&gt;
                          --&gt;
                              
                          &lt;Rectangle Grid.Column="1" Fill="{TemplateBinding Background}" Margin="0,2,0,2" RadiusY="2" RadiusX="2" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}"/&gt;
                          &lt;Grid x:Name="HorizontalTrack" Grid.Column="1"&gt;
                            &lt;esriToolkitPrimitives:TickBar x:Name="TickMarks" Grid.Column="0" IsHitTestVisible="False" Margin="5,0,5,0"&gt;
                              &lt;esriToolkitPrimitives:TickBar.TickMarkTemplate&gt;
                                &lt;DataTemplate&gt;
                                  &lt;Rectangle Height="{TemplateBinding Height}" Opacity="0.5" Stroke="Black" StrokeThickness="0.5" Width="1"/&gt;
                                &lt;/DataTemplate&gt;
                              &lt;/esriToolkitPrimitives:TickBar.TickMarkTemplate&gt;
                            &lt;/esriToolkitPrimitives:TickBar&gt;
                            &lt;RepeatButton x:Name="HorizontalTrackLargeChangeDecreaseRepeatButton" HorizontalAlignment="Stretch" IsTabStop="False" Opacity="0"/&gt;
                            &lt;Thumb x:Name="MinimumThumb" Cursor="Hand" DataContext="{TemplateBinding Value}" HorizontalAlignment="Left" IsTabStop="False" ToolTipService.Placement="Top" ToolTipService.ToolTip="{Binding Start}" Width="10"/&gt;
                            &lt;Rectangle x:Name="MinimumThumbDisabledOverlay" Fill="White" HorizontalAlignment="Left" Opacity=".55" RadiusY="2" RadiusX="2" Visibility="Collapsed" Width="10"/&gt;
                            &lt;Thumb x:Name="HorizontalTrackThumb" Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Left" IsTabStop="False"&gt;
                              &lt;Thumb.Template&gt;
                                &lt;ControlTemplate&gt;
                                  &lt;Rectangle Fill="{TemplateBinding Foreground}"/&gt;
                                &lt;/ControlTemplate&gt;
                              &lt;/Thumb.Template&gt;
                            &lt;/Thumb&gt;
                            &lt;Border x:Name="HorizontalTrackRectangleDisabledOverlay" Background="Red" CornerRadius="5" HorizontalAlignment="Left" Opacity="1" Visibility="Collapsed"/&gt;
                            &lt;Thumb x:Name="MaximumThumb" Cursor="Hand" DataContext="{TemplateBinding Value}" HorizontalAlignment="Left" IsTabStop="False" ToolTipService.Placement="Top" ToolTipService.ToolTip="{Binding End}" Width="10"/&gt;
                            &lt;Rectangle x:Name="MaximumThumbDisabledOverlay" Fill="White" HorizontalAlignment="Left" Height="Auto" Opacity=".55" RadiusY="2" RadiusX="2" Visibility="Collapsed" Width="10"/&gt;
                            &lt;RepeatButton x:Name="HorizontalTrackLargeChangeIncreaseRepeatButton" HorizontalAlignment="Stretch" IsTabStop="False" Opacity="0"/&gt;
                          &lt;/Grid&gt;
                          &lt;Rectangle x:Name="FocusVisualElement" Grid.Column="1" IsHitTestVisible="false" Margin="1" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FF6DBDD1" StrokeThickness="1"/&gt;
                          &lt;Button x:Name="PreviousButton" Grid.Column="2" Height="17" Padding="3,0" VerticalAlignment="Center" Width="17"&gt;
                            &lt;Grid&gt;
                              &lt;Path Data="M 5,0 L 5,9 0,4.5 5,0" Fill="Black"/&gt;
                              &lt;Rectangle Fill="Black" HorizontalAlignment="Left" Height="9" Margin="6,0,0,0" VerticalAlignment="Top" Width="1"/&gt;
                            &lt;/Grid&gt;
                          &lt;/Button&gt;
                          &lt;Button x:Name="NextButton" Grid.Column="3" Height="17" Padding="3,0" VerticalAlignment="Center" Width="17"&gt;
                            &lt;Grid&gt;
                              &lt;Path Data="M 0,0 L 0,9 5,4.5 0,0" Fill="Black" Margin="1.5,0,0,0"/&gt;
                              &lt;Rectangle Fill="Black" HorizontalAlignment="Left" Height="9" VerticalAlignment="Top" Width="1"/&gt;
                            &lt;/Grid&gt;
                          &lt;/Button&gt;
                        &lt;/Grid&gt;
                      &lt;/ControlTemplate&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                &lt;/Style&gt;
                
              &lt;/Grid.Resources&gt;
              
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="64" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" 
                       Width="616" TextWrapping="Wrap" Margin="12,0,0,0" 
                       Text="Once the FeatureLayer has initialized the customized TimeSlider will have all of the necessary
                         Properties set in order to run. The normal PlayPauseButton has been removed as part of the Control 
                         Template of the TimeSlider. Use the 'Start' and 'Stop' buttons to control the functionality
                         of the TimeSlider's animation via the .IsPlaying Property." /&gt;
              
              &lt;!--
              Add a Map Control with an ArcGISTiledMapServiceLayer and a FeatureLayer. The ArcGISTiledMapsServiceLayer 
              is the first Layer in Map.LayerCollection and is drawn on the bottom. The FeatureLayer is then added and 
              draws on top. Set the Map.Extent to zoom to the middle of the Atlantic Ocean.
              
              Setting the Map.TimeExtent acts like a Where clause in that only those features/records that fall
              within the set TimeSlider.Value (which is a narrowed TimeExtent) will then be shown. By Binding the 
              Map.TimeExtent to the TimeSlider.Value Property, the Map will automatically update as the thumb on 
              the TimeSlider moves.
              --&gt;
              &lt;esri:Map Name="Map1" Background="White" Height="375" Width="375" Margin="12,93,0,0" 
                        VerticalAlignment="Top" HorizontalAlignment="Left" Extent="-103.04,-13.82,2.08,91.30"
                        TimeExtent="{Binding ElementName=TimeSlider1, Path=Value}"&gt;
              
                &lt;!-- Add an ArcGISTiledMapsServiceLayer. --&gt;
                &lt;esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                      Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/&gt;
                
                &lt;!--
                The FeatureLayer contains Hurricane data from NOAA as Markers (aka. Points). Adding a Where clause is 
                optional. It is necessary when more that 500/1000 records returned. In ArcGIS Server 9.3.1 and prior, 
                the default maximum is 500 records returned per FeatureLayer. In ArcGIS Server 10 the default is 1000. 
                This setting is configurable per map service using ArcCatalog or ArcGIS Server Manager (on the Parameters
                tab). 
                
                Specify the Outfields Property to specify which Fields are returned. Specifying the wildcard (*) 
                character will return all Fields. 
                --&gt;
                &lt;esri:FeatureLayer ID="MyFeatureLayer"  OutFields="*"
                      Url="http://servicesbeta.esri.com/ArcGIS/rest/services/Hurricanes/Hurricanes/MapServer/0"
                      Initialized="FeatureLayer_Initialized"/&gt;
                
              &lt;/esri:Map&gt;
              
              &lt;!--
              Add a TimeSlider. The initialization of the TimeSlider .Intervals and .Values Properties will be handled in
              the code-behind as part of the FeatureLayer_Initilized Event.
                  
              The other TimeSlider initialization values of .MinimumValue, .MaximumValue, .TimeMode, Loop and .PlaySpeed
              will be handled here in the XAML.
                  
              PlaySpeed uses the format: "days:hours:seconds".
                  
              The Style Property makes use of the StaticResource 'TimeSliderStyle1' which was defined earlier in the XAML
              to customize the look and feel via a ControlTemplate.
              --&gt;
              &lt;esri:TimeSlider Name="TimeSlider1" HorizontalAlignment="Left" VerticalAlignment="Top" 
                               Height="25" Width="375" Margin="12,67,0,0"
                               MinimumValue="{Binding ElementName=Map1,Path=Layers[1].TimeExtent.Start}"
                               MaximumValue="{Binding ElementName=Map1,Path=Layers[1].TimeExtent.End}"
                               TimeMode="CumulativeFromStart" Loop="True" PlaySpeed="00:00:00.1"
                               Style="{StaticResource TimeSliderStyle1}"/&gt;
              
              &lt;!-- 
              TimeSlider.IsPlaying is a Dependency Property meaning that we can use Binding to automatically 
              display the state of .IsPlaying in a TextBox.
              --&gt;
              &lt;sdk:Label Content="TimeSlider.IsPlaying:" Name="Label_TimeSliderIsPlaying" Margin="402,70,0,0"
                         HorizontalAlignment="Left" VerticalAlignment="Top" Height="28" Width="120" /&gt;
              &lt;TextBlock Height="23" HorizontalAlignment="Left" Margin="401,85,0,0" Name="TextBlock_TimeSlider_IsPlaying" 
                         Text="{Binding ElementName=TimeSlider1,Path=IsPlaying}" VerticalAlignment="Top" Width="133" /&gt;
              
              &lt;!--
              Add a button to control the start of the animation in the TimeSlider. The logic of the 
              button is in the code-behind file. 
              --&gt;
              &lt;Button Name="Button_Start" Content="Start" Height="23" Width="121" Margin="401,125,0,0" 
                      HorizontalAlignment="Left" VerticalAlignment="Top" Click="Button_Start_Click"
                      IsEnabled="False"/&gt;
              
              &lt;!--
              Add a button to control the stop of the animation in the TimeSlider. The logic of the 
              button is in the code-behind file. 
              --&gt;
              &lt;Button Name="Button_Stop" Content="Stop" Height="23"  Width="121" Margin="401,154,0,0" 
                      HorizontalAlignment="Left" VerticalAlignment="Top" Click="Button_Stop_Click"
                      IsEnabled="False"/&gt;
              
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void FeatureLayer_Initialized(object sender, System.EventArgs e)
            {
              // This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              // are a Collection of IEnumerable&lt;DateTime&gt; objects. When the TimeSlider.Intervals Property is set along with 
              // the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. 
              
              // Obtain the start and end DateTime values from the TimeSlider named TimeSlider1 that was defined in XAML.
              DateTime myMinimumDate = TimeSlider1.MinimumValue;
              DateTime myMaximumDate = TimeSlider1.MaximumValue;
              
              // Create a TimeExtent based upon the start and end DateTimes.
              ESRI.ArcGIS.Client.TimeExtent myTimeExtent = new ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate);
              
              // Create a new TimeSpan (1 day in our case).
              TimeSpan myTimeSpan = new TimeSpan(1, 0, 0, 0);
              
              // Create an empty Collection of IEnumerable&lt;DateTime&gt; objects.
              System.Collections.Generic.IEnumerable&lt;DateTime&gt; myIEnumerableDates = null;
              
              // Load all of DateTimes into the Collection of IEnumerable&lt;DateTime&gt; objects using the 
              // TimeSlider.CreateTimeStopsByTimeInterval is a Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan);
              
              // Set the TimeSlider.Intervals which define the tick marks along the TimeSlider track to the IEnumerable&lt;DateTime&gt; 
              // objects.
              TimeSlider1.Intervals = myIEnumerableDates;
              
              // Define the initial starting position of the thumb along the TimeSlider.
              TimeSlider1.Value = new ESRI.ArcGIS.Client.TimeExtent(myIEnumerableDates.First);
              
              // Enable the Button_Start.
              Button_Start.IsEnabled = true;
            }
            
            private void Button_Start_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // Start the animation of the TimeSlider.
              TimeSlider1.IsPlaying = true;
              Button_Start.IsEnabled = false;
              Button_Stop.IsEnabled = true;
            }
            
            private void Button_Stop_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // Stop the animation of the TimeSlider.
              TimeSlider1.IsPlaying = false;
              Button_Start.IsEnabled = true;
              Button_Stop.IsEnabled = false;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub FeatureLayer_Initialized(ByVal sender As System.Object, ByVal e As System.EventArgs)
              
              ' This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              ' are a Collection of IEnumerable(Of Date) objects. When the TimeSlider.Intervals Property is set along with 
              ' the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. 
              
              ' Obtain the start and end Date/Time values from the TimeSlider named TimeSlider1 that was defined in XAML.
              Dim myMinimumDate As Date = TimeSlider1.MinimumValue
              Dim myMaximumDate As Date = TimeSlider1.MaximumValue
              
              ' Create a TimeExtent based upon the start and end date/times.
              Dim myTimeExtent As New ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate)
              
              ' Create a new TimeSpan (1 day in our case).
              Dim myTimeSpan As New TimeSpan(1, 0, 0, 0)
              
              ' Create an empty Collection of IEnumerable(Of Date) objects.
              Dim myIEnumerableDates As System.Collections.Generic.IEnumerable(Of Date)
              
              ' Load all of Dates into the Collection of IEnumerable(Of Date) objects using the 
              ' TimeSlider.CreateTimeStopsByTimeInterval is a Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan)
              
              ' Set the TimeSlider.Intervals which define the tick marks along the TimeSlider track to the IEnumerable(Of Date) 
              ' objects.
              TimeSlider1.Intervals = myIEnumerableDates
              
              ' Define the initial starting position of the thumb along the TimeSlider.
              TimeSlider1.Value = New ESRI.ArcGIS.Client.TimeExtent(myIEnumerableDates.First)
              
              ' Enable the Button_Start.
              Button_Start.IsEnabled = True
              
            End Sub
              
            Private Sub Button_Start_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' Start the animation of the TimeSlider.
              TimeSlider1.IsPlaying = True
              Button_Start.IsEnabled = False
              Button_Stop.IsEnabled = True
              
            End Sub
              
            Private Sub Button_Stop_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              
              ' Stop the animation of the TimeSlider.
              TimeSlider1.IsPlaying = False
              Button_Start.IsEnabled = True
              Button_Stop.IsEnabled = False
              
            End Sub
            </code>
            </example>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.Loop">
            <summary>
            Gets or sets a value indicating whether the animating of the TimeSlider thumb(s) will restart playing 
            when the end of the TickBar is reached.
            </summary>
            <remarks>
            <para>
            The Loop Property of True allows continuous playing of the thumb(s) across the TickBar of the TimeSlider. 
            A False value means the thumb(s) will stop at the last Interval (i.e. the 
            <see cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.MaximumValue">MaximumValue</see>) in the TickBar when 
            it is reached. 
            </para>
            <para>
            The default Loop value of the TimeSlider is False.
            </para>
            </remarks>
            <example>
            <para>
            <b>How to use:</b>
            </para>
            <para>
            Click the 'Initialize the TimeSlider' button to initialize all the TimeSlider functions (PlayPauseButton, 
            NextButton, PreviousButton). Then push the play button to start the animations. Check on/off the Loop 
            CheckBox to see the different effects of the Loop Property. The code example demonstrates a modified 
            Control Template of the TimeSlider.
            </para>
            <para>
            The XAML code in this example is used in conjunction with the code-behind (C# or VB.NET) to demonstrate
            the functionality.
            </para>
            <para>
            The following screen shot corresponds to the code example in this page.
            </para>
            <para>
            <img border="0" alt="Modifying the Control Template of a TimeSlider to have a CheckBox to control the TimeSlider.Loop Property." src="C:\ArcGIS\dotNET\API SDK\ArcGISSilverlightSDK\LibraryReference\images\Client.Toolkit.TimeSlider.Loop.png"/>
            </para>
            <code title="Example XAML1" description="" lang="XAML">
            &lt;!-- 
            Don't forget to add the xml namespace reference:
            xmlns:esriToolkitPrimitives="clr-namespace:ESRI.ArcGIS.Client.Toolkit.Primitives;assembly=ESRI.ArcGIS.Client.Toolkit" 
            --&gt;
            &lt;Grid x:Name="LayoutRoot"&gt;
              &lt;Grid.Resources&gt;
              
                &lt;!-- 
                Tip: Use x:Key Attribute and not x:Name Attribute for defining the name of the Resources so that
                you can access the Resource in the code-behind file. 
                --&gt;
                
                &lt;!-- The 'RedMarkerSymbol' will be used as the default symbol for the Graphics. --&gt;
                &lt;esri:SimpleMarkerSymbol x:Key="RedMarkerSymbol" Color="Red" Size="12" Style="Circle" /&gt;
                
                &lt;!-- 
                Define a SpatialReference object that has the same WKID as the ArcGISTiledMapServiceLayer in
                the Map. This will allow for the Graphics in the GraphicsLayer to line up properly. 
                --&gt;
                &lt;esri:SpatialReference x:Key="theSpatialReference" WKID="102100"/&gt;
                
                &lt;!--
                The majority of the XAML that defines the ControlTemplate for the Bookmark Control was obtained
                by using Microsoft Blend. See the blog post entitled: 'Use control templates to customize the 
                look and feel of ArcGIS controls' at the following Url for general How-To background:
                http://blogs.esri.com/Dev/blogs/silverlightwpf/archive/2010/05/20/Use-control-templates-to-customize-the-look-and-feel-of-ArcGIS-controls.aspx
                --&gt;
                &lt;Style x:Key="TimeSliderStyle1" TargetType="esri:TimeSlider"&gt;
                  &lt;Setter Property="IsTabStop" Value="True"/&gt;
                  &lt;Setter Property="Foreground"&gt;
                    &lt;Setter.Value&gt;
                      &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"&gt;
                        &lt;GradientStop Color="#00ffffff"/&gt;
                        &lt;GradientStop Color="#FF326FC0" Offset="0.5"/&gt;
                        &lt;GradientStop Color="#00ffffff" Offset="1"/&gt;
                      &lt;/LinearGradientBrush&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                  &lt;Setter Property="Background" Value="White"/&gt;
                  &lt;Setter Property="BorderBrush" Value="Black"/&gt;
                  &lt;Setter Property="BorderThickness" Value="1"/&gt;
                  &lt;Setter Property="Template"&gt;
                    &lt;Setter.Value&gt;
                      &lt;ControlTemplate TargetType="esri:TimeSlider"&gt;
                        &lt;Grid&gt;
                          &lt;Grid.Resources&gt;
                            &lt;Style x:Key="PlayPauseToggleButtonStyle" TargetType="ToggleButton"&gt;
                              &lt;Setter Property="Background" Value="#FF1F3B53"/&gt;
                              &lt;Setter Property="Foreground" Value="#FF000000"/&gt;
                              &lt;Setter Property="Padding" Value="3"/&gt;
                              &lt;Setter Property="BorderThickness" Value="1"/&gt;
                              &lt;Setter Property="BorderBrush"&gt;
                                &lt;Setter.Value&gt;
                                  &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"&gt;
                                    &lt;GradientStop Color="#FFA3AEB9" Offset="0"/&gt;
                                    &lt;GradientStop Color="#FF8399A9" Offset="0.375"/&gt;
                                    &lt;GradientStop Color="#FF718597" Offset="0.375"/&gt;
                                    &lt;GradientStop Color="#FF617584" Offset="1"/&gt;
                                  &lt;/LinearGradientBrush&gt;
                                &lt;/Setter.Value&gt;
                              &lt;/Setter&gt;
                              &lt;Setter Property="Template"&gt;
                                &lt;Setter.Value&gt;
                                  &lt;ControlTemplate TargetType="ToggleButton"&gt;
                                    &lt;Grid&gt;
                                      &lt;VisualStateManager.VisualStateGroups&gt;
                                        &lt;VisualStateGroup x:Name="CommonStates"&gt;
                                          &lt;VisualState x:Name="Normal"/&gt;
                                          &lt;VisualState x:Name="MouseOver"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundAnimation"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Pressed"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Background"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#FF6DBDD1"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundAnimation"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#D8FFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#C6FFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#8CFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                              &lt;ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"&gt;
                                                &lt;SplineColorKeyFrame KeyTime="0" Value="#3FFFFFFF"/&gt;
                                              &lt;/ColorAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Disabled"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="DisabledVisualElement"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value=".55"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                        &lt;/VisualStateGroup&gt;
                                        &lt;VisualStateGroup x:Name="CheckStates"&gt;
                                          &lt;VisualState x:Name="Checked"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PlayContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Collapsed&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PauseContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Unchecked"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PlayContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                              &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="PauseContent"&gt;
                                                &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                                  &lt;DiscreteObjectKeyFrame.Value&gt;
                                                    &lt;Visibility&gt;Collapsed&lt;/Visibility&gt;
                                                  &lt;/DiscreteObjectKeyFrame.Value&gt;
                                                &lt;/DiscreteObjectKeyFrame&gt;
                                              &lt;/ObjectAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                        &lt;/VisualStateGroup&gt;
                                        &lt;VisualStateGroup x:Name="FocusStates"&gt;
                                          &lt;VisualState x:Name="Focused"&gt;
                                            &lt;Storyboard&gt;
                                              &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"&gt;
                                                &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                              &lt;/DoubleAnimationUsingKeyFrames&gt;
                                            &lt;/Storyboard&gt;
                                          &lt;/VisualState&gt;
                                          &lt;VisualState x:Name="Unfocused"/&gt;
                                        &lt;/VisualStateGroup&gt;
                                      &lt;/VisualStateManager.VisualStateGroups&gt;
                                      &lt;Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="White" CornerRadius="3"&gt;
                                        &lt;Grid Background="{TemplateBinding Background}" Margin="1"&gt;
                                          &lt;Border x:Name="BackgroundAnimation" Background="#FF448DCA" Opacity="0"/&gt;
                                          &lt;Rectangle x:Name="BackgroundGradient"&gt;
                                            &lt;Rectangle.Fill&gt;
                                              &lt;LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0"&gt;
                                                &lt;GradientStop Color="#FFFFFFFF" Offset="0"/&gt;
                                                &lt;GradientStop Color="#F9FFFFFF" Offset="0.375"/&gt;
                                                &lt;GradientStop Color="#E5FFFFFF" Offset="0.625"/&gt;
                                                &lt;GradientStop Color="#C6FFFFFF" Offset="1"/&gt;
                                              &lt;/LinearGradientBrush&gt;
                                            &lt;/Rectangle.Fill&gt;
                                          &lt;/Rectangle&gt;
                                        &lt;/Grid&gt;
                                      &lt;/Border&gt;
                                      &lt;Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"&gt;
                                        &lt;Grid x:Name="PlayContent" FlowDirection="LeftToRight" Height="9" Margin="1" Width="9"&gt;
                                          &lt;Path Data="M0,0 L0,9 9,4.5 0,0" Fill="{TemplateBinding Foreground}"/&gt;
                                        &lt;/Grid&gt;
                                        &lt;Grid x:Name="PauseContent" Height="9" Margin="1" Visibility="Collapsed" Width="9"&gt;
                                          &lt;Rectangle Fill="{TemplateBinding Foreground}" HorizontalAlignment="Left" Width="3"/&gt;
                                          &lt;Rectangle Fill="{TemplateBinding Foreground}" HorizontalAlignment="Right" Width="3"/&gt;
                                        &lt;/Grid&gt;
                                      &lt;/Grid&gt;
                                      &lt;Rectangle x:Name="DisabledVisualElement" Fill="#FFFFFFFF" IsHitTestVisible="false" Opacity="0" RadiusY="3" RadiusX="3"/&gt;
                                      &lt;Rectangle x:Name="FocusVisualElement" IsHitTestVisible="false" Margin="1" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FF6DBDD1" StrokeThickness="1"/&gt;
                                    &lt;/Grid&gt;
                                  &lt;/ControlTemplate&gt;
                                &lt;/Setter.Value&gt;
                              &lt;/Setter&gt;
                            &lt;/Style&gt;
                          &lt;/Grid.Resources&gt;
                          &lt;Grid.ColumnDefinitions&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                            &lt;ColumnDefinition Width="*"/&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                                     
                            &lt;!-- Add a placeholder for our Loop Checkbox. --&gt;
                            &lt;ColumnDefinition Width="Auto"/&gt;
                             
                          &lt;/Grid.ColumnDefinitions&gt;
                          &lt;VisualStateManager.VisualStateGroups&gt;
                            &lt;VisualStateGroup x:Name="CommonStates"&gt;
                              &lt;VisualState x:Name="Normal"/&gt;
                              &lt;VisualState x:Name="MouseOver"/&gt;
                              &lt;VisualState x:Name="Disabled"&gt;
                                &lt;Storyboard&gt;
                                  &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="HorizontalTrackRectangleDisabledOverlay"&gt;
                                    &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                      &lt;DiscreteObjectKeyFrame.Value&gt;
                                        &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                      &lt;/DiscreteObjectKeyFrame.Value&gt;
                                    &lt;/DiscreteObjectKeyFrame&gt;
                                  &lt;/ObjectAnimationUsingKeyFrames&gt;
                                  &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="MinimumThumbDisabledOverlay"&gt;
                                    &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                      &lt;DiscreteObjectKeyFrame.Value&gt;
                                        &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                      &lt;/DiscreteObjectKeyFrame.Value&gt;
                                    &lt;/DiscreteObjectKeyFrame&gt;
                                  &lt;/ObjectAnimationUsingKeyFrames&gt;
                                  &lt;ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="MaximumThumbDisabledOverlay"&gt;
                                    &lt;DiscreteObjectKeyFrame KeyTime="0"&gt;
                                      &lt;DiscreteObjectKeyFrame.Value&gt;
                                        &lt;Visibility&gt;Visible&lt;/Visibility&gt;
                                      &lt;/DiscreteObjectKeyFrame.Value&gt;
                                    &lt;/DiscreteObjectKeyFrame&gt;
                                  &lt;/ObjectAnimationUsingKeyFrames&gt;
                                &lt;/Storyboard&gt;
                              &lt;/VisualState&gt;
                            &lt;/VisualStateGroup&gt;
                            &lt;VisualStateGroup x:Name="FocusStates"&gt;
                              &lt;VisualState x:Name="Focused"&gt;
                                &lt;Storyboard&gt;
                                  &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"&gt;
                                    &lt;SplineDoubleKeyFrame KeyTime="0" Value="1"/&gt;
                                  &lt;/DoubleAnimationUsingKeyFrames&gt;
                                &lt;/Storyboard&gt;
                              &lt;/VisualState&gt;
                              &lt;VisualState x:Name="Unfocused"/&gt;
                            &lt;/VisualStateGroup&gt;
                          &lt;/VisualStateManager.VisualStateGroups&gt;
                          &lt;ToggleButton x:Name="PlayPauseButton" Grid.Column="0" Height="17" Style="{StaticResource PlayPauseToggleButtonStyle}" VerticalAlignment="Center" Width="17"/&gt;
                          &lt;Rectangle Grid.Column="1" Fill="{TemplateBinding Background}" Margin="0,2,0,2" RadiusY="2" RadiusX="2" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}"/&gt;
                          &lt;Grid x:Name="HorizontalTrack" Grid.Column="1"&gt;
                            &lt;esriToolkitPrimitives:TickBar x:Name="TickMarks" Grid.Column="0" IsHitTestVisible="False" Margin="5,0,5,0"&gt;
                              &lt;esriToolkitPrimitives:TickBar.TickMarkTemplate&gt;
                                &lt;DataTemplate&gt;
                                  &lt;Rectangle Height="{TemplateBinding Height}" Opacity="0.5" Stroke="Black" StrokeThickness="0.5" Width="1"/&gt;
                                &lt;/DataTemplate&gt;
                              &lt;/esriToolkitPrimitives:TickBar.TickMarkTemplate&gt;
                            &lt;/esriToolkitPrimitives:TickBar&gt;
                            &lt;RepeatButton x:Name="HorizontalTrackLargeChangeDecreaseRepeatButton" HorizontalAlignment="Stretch" IsTabStop="False" Opacity="0"/&gt;
                            &lt;Thumb x:Name="MinimumThumb" Cursor="Hand" DataContext="{TemplateBinding Value}" HorizontalAlignment="Left" IsTabStop="False" ToolTipService.Placement="Top" ToolTipService.ToolTip="{Binding Start}" Width="10"/&gt;
                            &lt;Rectangle x:Name="MinimumThumbDisabledOverlay" Fill="White" HorizontalAlignment="Left" Opacity=".55" RadiusY="2" RadiusX="2" Visibility="Collapsed" Width="10"/&gt;
                            &lt;Thumb x:Name="HorizontalTrackThumb" Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Left" IsTabStop="False"&gt;
                              &lt;Thumb.Template&gt;
                                &lt;ControlTemplate&gt;
                                  &lt;Rectangle Fill="{TemplateBinding Foreground}"/&gt;
                                &lt;/ControlTemplate&gt;
                              &lt;/Thumb.Template&gt;
                            &lt;/Thumb&gt;
                            &lt;Border x:Name="HorizontalTrackRectangleDisabledOverlay" Background="Red" CornerRadius="5" HorizontalAlignment="Left" Opacity="1" Visibility="Collapsed"/&gt;
                            &lt;Thumb x:Name="MaximumThumb" Cursor="Hand" DataContext="{TemplateBinding Value}" HorizontalAlignment="Left" IsTabStop="False" ToolTipService.Placement="Top" ToolTipService.ToolTip="{Binding End}" Width="10"/&gt;
                            &lt;Rectangle x:Name="MaximumThumbDisabledOverlay" Fill="White" HorizontalAlignment="Left" Height="Auto" Opacity=".55" RadiusY="2" RadiusX="2" Visibility="Collapsed" Width="10"/&gt;
                            &lt;RepeatButton x:Name="HorizontalTrackLargeChangeIncreaseRepeatButton" HorizontalAlignment="Stretch" IsTabStop="False" Opacity="0"/&gt;
                          &lt;/Grid&gt;
                          &lt;Rectangle x:Name="FocusVisualElement" Grid.Column="1" IsHitTestVisible="false" Margin="1" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FF6DBDD1" StrokeThickness="1"/&gt;
                          &lt;Button x:Name="PreviousButton" Grid.Column="2" Height="17" Padding="3,0" VerticalAlignment="Center" Width="17"&gt;
                            &lt;Grid&gt;
                              &lt;Path Data="M 5,0 L 5,9 0,4.5 5,0" Fill="Black"/&gt;
                             &lt;Rectangle Fill="Black" HorizontalAlignment="Left" Height="9" Margin="6,0,0,0" VerticalAlignment="Top" Width="1"/&gt;
                            &lt;/Grid&gt;
                          &lt;/Button&gt;
                          &lt;Button x:Name="NextButton" Grid.Column="3" Height="17" Padding="3,0" VerticalAlignment="Center" Width="17"&gt;
                            &lt;Grid&gt;
                              &lt;Path Data="M 0,0 L 0,9 5,4.5 0,0" Fill="Black" Margin="1.5,0,0,0"/&gt;
                              &lt;Rectangle Fill="Black" HorizontalAlignment="Left" Height="9" VerticalAlignment="Top" Width="1"/&gt;
                            &lt;/Grid&gt;
                          &lt;/Button&gt;
                          
                          &lt;!-- 
                          Add a CheckBox that will provide the ability for the user to turn on/off the Loop
                          Property of the TimeSlider. Code-behind functions were added for the Checked and
                          Unchecked states of the CheckBox.
                          --&gt;
                          &lt;CheckBox x:Name="MyLooper" Grid.Column="4" Height="17" Width="50" Padding="3,0" Margin="2"
                                    VerticalAlignment="Center" Content="Loop" 
                                    Checked="MyLooper_Checked" Unchecked="MyLooper_Unchecked"
                                    IsChecked="True"/&gt;
                    
                        &lt;/Grid&gt;
                      &lt;/ControlTemplate&gt;
                    &lt;/Setter.Value&gt;
                  &lt;/Setter&gt;
                &lt;/Style&gt;
                
              &lt;/Grid.Resources&gt;
              
              &lt;!-- 
              Add a Map control with an ArcGISTiledMapServiceLayer and a GraphicsLayer. The Map.TimeExtent is
              bound to the MyTimeSlider (TimeSlider) control. The MyTimeSlider will control what TimeExtent (i.e.
              slices of time) can be viewed in the Map control.
                    
              The GraphicsLayer will contain several Graphics based upon MapPoint geometries (which use the 
              defined SpatialReference) which use the RedMarkerSymbol as the default symbolization, and have various 
              TimeExtent values set. When the specific Graphic elements have a TimeExtent that falls within the 
              Map.TimeExtent will they be displayed based upon the MyTimeSlider settings.
              --&gt;
              &lt;esri:Map Background="White" HorizontalAlignment="Left" Margin="12,150,0,0" Name="Map1" 
                      VerticalAlignment="Top" Height="318" Width="341" 
                      TimeExtent="{Binding ElementName=MyTimeSlider, Path=Value}"&gt;
              
                &lt;esri:ArcGISTiledMapServiceLayer ID="PhysicalTiledLayer" 
                             Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer" /&gt;
                
                &lt;!-- 
                It is important to provide the GraphicsLayer with an 'ID' Attribute so to be able to access it
                in the code-behind file. 
                --&gt;
                &lt;esri:GraphicsLayer ID="MyGraphicsLayer" &gt;
                
                  &lt;esri:GraphicsLayer.Graphics&gt;
                  
                    &lt;!-- 
                    Each Graphic added to the GraphicsLayer will have it's symbology, TimeExtent and geometry defined. 
                    --&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/04 12:00:01 UTC" &gt;
                      &lt;esri:MapPoint X="-7356594.25" Y="4752385.95" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/07 06:30:00 UTC"&gt;
                      &lt;esri:MapPoint X="5654893.89" Y="3718746.02" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/10 05:15:15 UTC"&gt;
                      &lt;esri:MapPoint X="-13654893.89" Y="-1718746.02" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/14 03:03:00 UTC"&gt;
                      &lt;esri:MapPoint X="3654893.89" Y="7718746.02" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/18 09:11:51 UTC"&gt;
                      &lt;esri:MapPoint X="6801033.36" Y="10325547.30" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/20 01:00:03 UTC"&gt;
                      &lt;esri:MapPoint X="-5468910.57" Y="1741081.03" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    &lt;esri:Graphic Symbol="{StaticResource RedMarkerSymbol}" TimeExtent="2000/08/22 18:23:43 UTC"&gt;
                      &lt;esri:MapPoint X="-4614958.43" Y="-326382.05" SpatialReference="{StaticResource theSpatialReference}"/&gt;
                    &lt;/esri:Graphic&gt;
                    
                  &lt;/esri:GraphicsLayer.Graphics&gt;
                &lt;/esri:GraphicsLayer&gt;
              &lt;/esri:Map&gt;
              
              &lt;!-- 
              Add a TimeSlider to control the display of what geographic features are displayed in the Map Control
              based upon a specified TimeExtent. In the case of this sample code, when the specific Graphic elements 
              have a TimeExtent that falls within the Map.TimeExtent will they be displayed based upon the MyTimeSlider 
              settings.
              
              Tip: It is the x:Name Attribute that allows you to access the TimeSlider Control in the code-behind file. 
                
              The Loop Attribute of True allows continuous playing of the TimeSlider once it initialized in the code-behind.
                  
              The PlaySpeed Attribute follows the format of "hh:mm:ss" where, hh = hours (0 to 24), mm = minutes (0 to 60),
              and ss = seconds (0 to 60). In this example the PlaySpeed increments the time intervals every tenth of a second
              (i.e. 0.1).
                  
              The TimeMode Attribute of CumulativeFromStart means there is a fixed start date/time (2000/08/04 00:00:00 UTC
              in this example) that does not change and an end date/time that adjusts as the specified Interval (one day 
              in this example which is set in the code-behind) increases. As the 'thumb' of the TimeSlider control moves
              to the right along the slider track the TimeExtent Interval of the TimeSlider increases.
                  
              The MinimumValue Attribute specifies the starting date/time of the TimeSlider track.
                  
              The MaximumValue Attribute specifies the ending date/time of the TimeSlider track.
                
              The Value Attribute specifies the date/time location of the thumb along the TimeSlider track. The thumb can 
              have a start date/time and end date/time set for a TimeExtent which will display a window of time as the
              thumb moves along the TimeSlider track but this is best for TimeMode Attribute of 'TimeExtent'. Since
              this example is showing a TimeMode of 'CumulativeFromStart' it is best to have the thumb just use a single
              date/time specified for the Value set to the same date/time as the MinimumValue.
                
              The last thing needed to enable the full capabilities of a TimeSlider (i.e. having the PlayPause, Next, 
              and Previous buttons) is to set the Intervals Property. In Silverlight, this can only be done in code-behind to 
              construct the Collection Type of IEnumerable(Of Date). Without the TimeSlider.Intervals being set the user 
              has to manually move the thumb across the TimeSlider track to change the Map.TimeExtent and thereby see what 
              Graphics can be displayed for that date/time window.
              --&gt;
              &lt;esri:TimeSlider x:Name="MyTimeSlider" 
                                Loop="True" PlaySpeed="0:0:0.1"
                                TimeMode="CumulativeFromStart"                 
                                MinimumValue="2000/08/04 00:00:00 UTC"
                                MaximumValue="2000/08/24 00:00:00 UTC"
                                Height="22" Margin="12,122,0,0" 
                                Value="2000/08/04 00:00:00 UTC"
                                HorizontalAlignment="Left" VerticalAlignment="Top" Width="341" 
                                Style="{StaticResource TimeSliderStyle1}"/&gt;
            
              &lt;!-- Provide the instructions on how to use the sample code. --&gt;
              &lt;TextBlock Height="87" HorizontalAlignment="Left" Name="TextBlock1" VerticalAlignment="Top" Width="455" 
                       TextWrapping="Wrap" Margin="12,0,0,0" 
                       Text="Click the 'Initialize the TimeSlider' button to initialize all the TimeSlider functions 
                         (PlayPauseButton, NextButton, PreviousButton). Then push the play button to start the animations. 
                         Check on/off the Loop CheckBox to see the different effects of the Loop Property. The code example 
                         demonstrates a modified Control Template of the TimeSlider." /&gt;
            
              &lt;!-- Add a button to perform the work of fully initiaizing the TimeSlider. --&gt;
              &lt;Button Content="Initialize the TimeSlider" Height="23" HorizontalAlignment="Left" 
                    Margin="12,93,0,0" Name="Button1" VerticalAlignment="Top" Width="341" Click="Button1_Click"/&gt;
            
            &lt;/Grid&gt;
            </code>
            <code title="Example CS1" description="" lang="CS">
            private void Button1_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              // This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              // are a Collection of IEnumerable&lt;DateTime&gt; objects. When the TimeSlider.Intervals Property is set along with 
              // the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. This full 
              // functionality includes buttons for PlayPause, Next, and Previous.
              
              // Obtain the start and end DateTime values from the TimeSlider named MyTimeSlider that was defined in XAML.
              DateTime myMinimumDate = MyTimeSlider.MinimumValue;
              DateTime myMaximumDate = MyTimeSlider.MaximumValue;
              
              // Create a TimeExtent based upon the start and end date/times.
              ESRI.ArcGIS.Client.TimeExtent myTimeExtent = new ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate);
              
              // Create a new TimeSpan (1 day in our case).
              TimeSpan myTimeSpan = new TimeSpan(1, 0, 0, 0);
              
              // Create an empty Collection of IEnumerable&lt;DateTime&gt; objects.
              System.Collections.Generic.IEnumerable&lt;Date&gt; myIEnumerableDates = null;
              
              // Load all of DateTimes into the Collection of IEnumerable&lt;DateTime&gt; objects using the 
              // TimeSlider.CreateTimeStopsByTimeInterval is a Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan);
              
              // Set the TimeSlider.Intervals which define the tick marks along the TimeSlider track to the IEnumerable&lt;DateTime&gt; 
              // objects.
              MyTimeSlider.Intervals = myIEnumerableDates;
            }
              
            private void MyLooper_Checked(object sender, System.Windows.RoutedEventArgs e)
            {
              // Enabling Looping.
              MyTimeSlider.Loop = true;
            }
              
            private void MyLooper_Unchecked(object sender, System.Windows.RoutedEventArgs e)
            {
              // Disable Looping.
              MyTimeSlider.Loop = false;
            }
            </code>
            <code title="Example VB1" description="" lang="VB.NET">
            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            
              ' This function sets up TimeSlider Intervals that define the tick marks along the TimeSlider track. Intervals 
              ' are a Collection of IEnumerable(Of Date) objects. When the TimeSlider.Intervals Property is set along with 
              ' the other necessary TimeSlider Properties, the full functionality of the TimeSlider is enabled. This full 
              ' functionality includes buttons for PlayPause, Next, and Previous.
              
              ' Obtain the start and end Date/Time values from the TimeSlider named MyTimeSlider that was defined in XAML.
              Dim myMinimumDate As Date = MyTimeSlider.MinimumValue
              Dim myMaximumDate As Date = MyTimeSlider.MaximumValue
              
              ' Create a TimeExtent based upon the start and end date/times.
              Dim myTimeExtent As New ESRI.ArcGIS.Client.TimeExtent(myMinimumDate, myMaximumDate)
              
              ' Create a new TimeSpan (1 day in our case).
              Dim myTimeSpan As New TimeSpan(1, 0, 0, 0)
              
              ' Create an empty Collection of IEnumerable(Of Date) objects.
              Dim myIEnumerableDates As System.Collections.Generic.IEnumerable(Of Date)
              
              ' Load all of Dates into the Collection of IEnumerable(Of Date) objects using the 
              ' TimeSlider.CreateTimeStopsByTimeInterval is a Shared/Static function.
              myIEnumerableDates = ESRI.ArcGIS.Client.Toolkit.TimeSlider.CreateTimeStopsByTimeInterval(myTimeExtent, myTimeSpan)
              
              ' Set the TimeSlider.Intervals which define the tick marks along the TimeSlider track to the IEnumerable(Of Date) 
              ' objects.
              MyTimeSlider.Intervals = myIEnumerableDates
              
            End Sub
            
            Private Sub MyLooper_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              ' Enabling Looping.
              MyTimeSlider.Loop = True
            End Sub
            
            Private Sub MyLooper_Unchecked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
              ' Disable Looping.
              MyTimeSlider.Loop = False
            End Sub
            </code>
            </example>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChangedEventArgs">
            <summary>
            <see cref="T:System.Windows.RoutedEventArgs"/> used when raising the <see cref="E:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChanged"/> event.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChangedEventArgs.#ctor(ESRI.ArcGIS.Client.TimeExtent,ESRI.ArcGIS.Client.TimeExtent)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChangedEventArgs"/> class.
            </summary>
            <param name="newValue">The new <see cref="T:ESRI.ArcGIS.Client.TimeExtent"/> value.</param>
            <param name="oldValue">The old <see cref="T:ESRI.ArcGIS.Client.TimeExtent"/> value.</param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChangedEventArgs.NewValue">
            <summary>
            Gets the new <see cref="T:ESRI.ArcGIS.Client.TimeExtent"/> value.
            </summary>
            <value>The new value.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.ValueChangedEventArgs.OldValue">
            <summary>
            Gets the old <see cref="T:ESRI.ArcGIS.Client.TimeExtent"/> value.
            </summary>
            <value>The old value.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.TimeMode">
            <summary>
            TimeMode represents the way dates are measured over time for the 
            <see cref="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider"/> control.
            </summary>
            <seealso cref="T:ESRI.ArcGIS.Client.Toolkit.TimeSlider"/>
            <seealso cref="P:ESRI.ArcGIS.Client.Toolkit.TimeSlider.TimeMode"/>
            <seealso cref="T:ESRI.ArcGIS.Client.TimeExtent"/>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeMode.CumulativeFromStart">
            <summary>
            CumulativeFromStart mode represents a fixed start date that does not change 
            and a end date that can change.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeExtent">
            <summary>
            TimeExtent mode represents a start date that can change and a end 
            date that can also change.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.TimeMode.TimeInstant">
            <summary>
            TimeInstant mode represents a start date and end date that are always 
            the same date.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.ValueConverters.ObjectToObjectConverter">
            <summary>
            Convert an object to an object defined in a dictionary (the key being the string representation of the value).
            <remarks>
            If the key doesn't exist un the dictionary, the converter returns the string representation of the value.
            </remarks>
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ValueConverters.ObjectToObjectConverter.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.ValueConverters.ObjectToObjectConverter"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ValueConverters.ObjectToObjectConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the source data before passing it to the target for display in the UI.
            </summary>
            <param name="value">The source data being passed to the target.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the target dependency property.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the target dependency property.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.ValueConverters.ObjectToObjectConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the target data before passing it to the source object.  This method is called only in <see cref="F:System.Windows.Data.BindingMode.TwoWay"/> bindings.
            </summary>
            <param name="value">The target data being passed to the source.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the source object.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the source object.
            </returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.ValueConverters.ObjectToObjectConverter.ResourceDictionary">
            <summary>
            The resource dictionary used for the conversion.
            <remarks>
            This is the content property of the class.
            </remarks>
            </summary>
            <value>The resource dictionary.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.InfoWindow">
            <summary>
            Creates an instance of the InfoWindow that positions itself on top of the map
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.InfoWindow.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.InfoWindow"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.InfoWindow.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.InfoWindow"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.InfoWindow.ArrangeOverride(System.Windows.Size)">
            <summary>
            Provides the behavior for the Arrange pass of Silverlight layout.
            Classes can override this method to define their own Arrange pass 
            behavior.
            </summary>
            <param name="finalSize">The final area within the parent that this
            object should use to arrange itself and its children.</param>
            <returns>
            The actual size that is used after the element is arranged in layout.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.InfoWindow.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application 
            code or internal processes (such as a rebuilding layout pass) call 
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>. In 
            simplest terms, this means the method is called just before a UI 
            element displays in an application. For more information, see Remarks.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.InfoWindow.IsOpenProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.IsOpen"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.InfoWindow.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.InfoWindow.AnchorProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.Anchor"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.InfoWindow.CornerRadiusProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.CornerRadius"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.InfoWindow.StrokeThicknessProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.StrokeThickness"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.IsOpen">
            <summary>
            Gets or sets a value indicating whether the InfoWindow is open.
            </summary>
            <value><c>true</c> if this instance is open; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.Map">
            <summary>
            Gets or sets the map.
            </summary>
            <value>The map.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.Anchor">
            <summary>
            Gets or sets the anchor point.
            </summary>
            <value>The anchor point.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.CornerRadius">
            <summary>
            Gets or sets the corner radius.
            </summary>
            <value>The corner radius.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.InfoWindow.StrokeThickness">
            <summary>
            Gets or sets the stroke thickness.
            </summary>
            <value>The stroke thickness.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid">
            <summary>
            Feature DataGrid Control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.#cctor">
            <summary>
            Initializes the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> class.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsLayerProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsLayer"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.FilterSourceProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.FilterSource"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OnApplyTemplate">
            <summary>
            Finds Template Children defined in the Generic.xaml and initializes related 
            variables of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OnBeginningEdit(System.Windows.Controls.DataGridBeginningEditEventArgs)">
            <summary>
            Raises the <see cref="E:System.Windows.Controls.DataGrid.BeginningEdit"/> event.
            </summary>
            <param name="e">The event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OnRowEditEnding(System.Windows.Controls.DataGridRowEditEndingEventArgs)">
            <summary>
            Raises the <see cref="E:RowEditEnding"/> event.
            </summary>
            <param name="e">The DataGridRowEditEndingEventArgs instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OnSelectionChanged(System.Windows.Controls.SelectionChangedEventArgs)">
            <summary>
            Raises the <see cref="E:System.Windows.Controls.DataGrid.SelectionChanged"/> event.
            </summary>
            <param name="e">The event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OnAutoGeneratingColumn(System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs)">
            <summary>
            Raises the <see cref="E:System.Windows.Controls.DataGrid.AutoGeneratingColumn"/> event.
            </summary>
            <param name="e">The event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OnPreparingCellForEdit(System.Windows.Controls.DataGridPreparingCellForEditEventArgs)">
            <summary>
            Raises the <see cref="E:System.Windows.Controls.DataGrid.PreparingCellForEdit"/> event.
            </summary>
            <param name="e">The event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.InitializeFeatureDataGrid">
            <summary>
            Initializes events,... for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> and all the identified 
            variables in its control template.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ValidateCurrentRecordNumber">
            <summary>
            Validates current record number and sets an appropriate value based upon the accepted range.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SelectCurrentRecord">
            <summary>
            Selects current record in the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MoveFirst">
            <summary>
            Moves to the first.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MovePrevious">
            <summary>
            Moves to the previous.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MoveNext">
            <summary>
            Moves to the next.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MoveLast">
            <summary>
            Moves to the last.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MoveFirstButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the MoveFirstButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MovePreviousButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the MovePreviousButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MoveNextButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the MoveNextButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.MoveLastButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the MoveLastButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.CurrentRecordNumberTextBox_KeyDown(System.Object,System.Windows.Input.KeyEventArgs)">
            <summary>
            Finds and selects the grid row in the index specified in the textbox.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ClearSelection">
            <summary>
            Clears selection.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SwitchSelection">
            <summary>
            Switches the current selection.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SelectAllRows">
            <summary>
            Selects all rows and graphic features.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ZoomToSelection">
            <summary>
            Calculates the MBR containing all selected graphics and changes the map extent 
            to the calculated extent.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.DeleteSelectedRows">
            <summary>
            Deletes selected <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> row(s) and removes 
            related graphic(s) from <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>'s grahics layer.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.OptionsButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the OptionsButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.PopupChild_MouseLeave(System.Object,System.Windows.Input.MouseEventArgs)">
            <summary>
            Handles the MouseLeave event of the PopupChild control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.Input.MouseEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ClearSelectionMenuButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the ClearSelectionMenuButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SwitchSelectionMenuButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the SwitchSelectionMenuButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SelectAllMenuButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the SelectAllMenuButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ZoomToSelectionMenuButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the ZoomToSelectionMenuButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.DeleteSelectedRowsMenuButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the DeleteSelectedRowsMenuButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SetCurrentRecordNumberTextBox">
            <summary>
            Sets the text in current record number text box.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SetNumberOfRecordsTextBlock(System.Int32,System.Int32)">
            <summary>
            Sets the text in number of records text block.
            </summary>
            <param name="countSelected">number of selected records.</param>
            <param name="countTotal">total number of records.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SetRecordsCount">
            <summary>
            Sets the records count variable.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ShowNumberOfRecords">
            <summary>
            Shows number of selected records and total number of records in the grid row.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SetItemsSource(System.Collections.Generic.IEnumerable{ESRI.ArcGIS.Client.Graphic})">
            <summary>
            Sets the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>'s ItemsSource after converting the source parameter to 
            the proper format.
            </summary>
            <param name="graphics">The graphics.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GetCorrespondingGridRow(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Gets the corresponding row in <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> for the graphic.
            </summary>
            <param name="graphic">The graphic.</param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.Graphic_PropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Handles the PropertyChanged event of each Graphic element in the GraphicCollection 
            of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> class.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.PopulateItemsSource(ESRI.ArcGIS.Client.GraphicsLayer,System.EventHandler{System.EventArgs})">
            <summary>
            Populates associated GraphicsLayer's PropertyChanged event handler (if it's not a FeatureLayer) to update 
            contents of the FeatureDataGrid when its Graphics collection changes. Also, checks whether the layer is a 
            FeatureLayer and populates the internal LayerInfo and EndSaveEdits event handlers for editing purposes.
            At the end sets the ItemsSource of FeatureDataGrid and resets its internal variables states and values, and
            if it's called as a result of the Initialized event handler of GraphicsLayer unregisters the handler.
            </summary>
            <param name="graphicsLayer">The GraphicsLayer.</param>
            <param name="handler">The Initialized event handler to be unregistered.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.Graphics_CollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Will be fired whenever there were any changes in graphics collection 
            of the GraphicsLayer to update <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>'s ItemsSource.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.UpdateItemsSource(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Updates contents of the ItemsSource when FeatureDataGrid's associated graphic collection changes.
            </summary>
            <param name="sender">Observable collection of Graphic.</param>
            <param name="e">Collection changed event arguments.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ScrollGridRowIntoView(System.Object)">
            <summary>
            Finds the row in the input parameter then scrolls the data gird vertically to 
            make it visible to the user.
            </summary>
            <param name="item"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GetGraphicIndexInGraphicsCollection(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Finds and returns the given graphics in the graphics collection 
            in the GraphicsLayer.
            </summary>
            <param name="graphic"></param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SelectGraphics(System.Collections.IList,System.Boolean)">
            <summary>
            Selects/deselects related graphic objects in the GraphicsLayer 
            when related grid rows have been selected/deselected by the user.
            </summary>
            <param name="rowsToLookup"></param>
            <param name="shouldSelectGraphics"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GetRowIndexInRowsCollection(System.Object)">
            <summary>
            Finds and returns index of the given row in the ItemsSource 
            object of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>.
            </summary>
            <param name="gridRow"></param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SubmitChangesMenuButton_Click(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the Click event of the SubmitChangesMenuButton control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.FeatureDataGrid_LayoutUpdated(System.Object,System.EventArgs)">
            <summary>
            Handles the LayoutUpdated event of the FeatureDataGrid control.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
            <remarks>WPF only: When FeatureDataGrid is collapsed at the beginning and user performs a selection in the 
            associated GraphicsLayer even though number of selected items and its related internal variable are shown and 
            set correctly the UIElement of selected rows won't go to their selected states. We can overcome this problem 
            by listening to LayoutUpdated event handler of the FeatureDataGrid and re-applying the current selection from 
            GraphicsLayer to SelectedItems object of the FeatureDataGrid.
            </remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.RefreshRow(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Updates a data row corresponds to the given graphic object.
            </summary>
            <param name="graphic">The graphic.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.ScrollIntoView(ESRI.ArcGIS.Client.Graphic,System.Windows.Controls.DataGridColumn)">
            <summary>
            Scrolls the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/> vertically to display the row
            for the specified <see cref="T:ESRI.ArcGIS.Client.Graphic"/> and scrolls the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>
            horizontally to display the specified column.
            </summary>
            <param name="graphic">The graphic.</param>
            <param name="column">The column.</param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.Map">
            <summary>
            Gets or sets the map containing the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsLayer"/>.
            </summary>
            <remarks>Used for adjusting the extent when requested by user.</remarks>
            <value>The map.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsLayer">
            <summary>
            The graphics layer bound to the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid"/>.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.FilterSource">
            <summary>
            Collection of graphics in the associated layer that have been filtered by a spatial/attribute query. 
            </summary>
            <value>The filter source.</value>
            <remarks>Is set then FeatureDataGrid will be popuated by this collection.</remarks>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.SelectedGraphics">
            <summary>
            Gets the selected graphics.
            </summary>
            <value>The selected graphics.</value>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.#ctor(ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList"/> class.
            </summary>
            <param name="owner">The owner.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Add(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Adds the specified value.
            </summary>
            <param name="value">The value.</param>
            <returns>The position into which the new element was inserted.</returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Clear">
            <summary>
            Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
            </exception>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Contains(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Returns true if current selection includes the given graphic.
            </summary>
            <param name="value"></param>
            <returns>
            <c>true</c> if the <see cref="T:ESRI.ArcGIS.Client.Graphic"/> is found in the <see cref="T:System.Collections.IList"/>; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.IndexOf(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Returns index of the graphic in current selected graphics
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Insert(System.Int32,ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Inserts a graphic to the current selection at given index
            </summary>
            <param name="index"></param>
            <param name="value"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Remove(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Removes a graphic from current selection
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.RemoveAt(System.Int32)">
            <summary>
            Removes a graphic from current selection at the given index
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.GetEnumerator">
            <summary>
            Returns an IEnumerator from current selection
            </summary>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.System#Collections#Generic#IEnumerable{ESRI#ArcGIS#Client#Graphic}#GetEnumerator">
            <summary>
            Returns an IEnumerator from current selection
            </summary>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies elements of SelectedItems to an array starting at the given index
            </summary>
            <param name="array"></param>
            <param name="index"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.System#Collections#Generic#ICollection{ESRI#ArcGIS#Client#Graphic}#Add(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Adds an item to the current selected graphics collection
            </summary>
            <param name="item"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.CopyTo(ESRI.ArcGIS.Client.Graphic[],System.Int32)">
            <summary>
            Copies the elements of the SelectedGraphics to an array 
            starting at a particular index.
            </summary>
            <param name="array"></param>
            <param name="arrayIndex"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.System#Collections#Generic#ICollection{ESRI#ArcGIS#Client#Graphic}#Remove(ESRI.ArcGIS.Client.Graphic)">
            <summary>
            Removes the first occurrence of a specific graphic from the SelectedGraphics
            </summary>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.IsFixedSize">
            <summary>
            Gets whether the SelectedItems collection is fixed size
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.IsReadOnly">
            <summary>
            Gets whether the SelectedItems collection is read only
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Item(System.Int32)">
            <summary>
            Gets or sets a graphic at the given index
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.Count">
            <summary>
            Gets number of SelectedItems
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.IsSynchronized">
            <summary>
            Gets a value indicating whether access to the SelectedItems is synchronized
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataGrid.GraphicsSelectionList.SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the SelectedItems
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Toolbar">
            <summary>
            A Widget used to represent a Toolbar
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Toolbar.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Toolbar"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Toolbar.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Toolbar"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Toolbar.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code or internal processes (such as a rebuilding layout pass) call <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Toolbar.MaxItemHeightProperty">
            <summary>
            Identifies the MaxItemHeight dependency poperty
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Toolbar.MaxItemWidthProperty">
            <summary>
            Identifies the MaxItemWidth dependency property
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Toolbar.ItemsProperty">
            <summary>
            Identifies the Items dependency property
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Toolbar.ToolbarItemClickEffectProperty">
            <summary>
            Identifies the ToolbarItemClieckEffect dependency property
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Toolbar.ToolbarIndexChanged">
            <summary>
            Occurs when [toolbar index changed].
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Toolbar.ToolbarItemClicked">
            <summary>
            Occurs when [toolbar item clicked].
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Toolbar.ToolbarItemMouseEnter">
            <summary>
            Occurs when [toolbar item mouse enter].
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Toolbar.ToolbarItemMouseLeave">
            <summary>
            Occurs when [toolbar item mouse leave].
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Toolbar.MaxItemHeight">
            <summary>
            Gets or sets the maximum height of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItem"/> item.
            </summary>
            <value>The height of the max item.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Toolbar.MaxItemWidth">
            <summary>
            Gets or sets the maximum width of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItem"/>.
            </summary>
            <value>The width of the max item.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Toolbar.Items">
            <summary>
            Gets or sets the <see cref="T:ESRI.ArcGIS.Client.Toolkit.ToolbarItemCollection"/>.
            </summary>
            <value>The items.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Toolbar.ToolbarItemClickEffect">
            <summary>
            Gets or sets the toolbar item click effect.
            </summary>
            <value>The toolbar item click effect.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Toolbar.ClickEffect">
            <summary>
            An enumeration used to select the tpe of click effect
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Toolbar.ClickEffect.None">
            <summary>
            Specifify the None enumeration when no click effect is wanted
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Toolbar.ClickEffect.Bounce">
            <summary>
            Use this enumeration to specify a bounce click effect
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.AttachmentEditor_FileUploadFailed">
            <summary>
              Looks up a localized string similar to File upload failed..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Attribution_Copyright">
            <summary>
              Looks up a localized string similar to {0} attribution..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Bookmark_Name">
            <summary>
              Looks up a localized string similar to Bookmark .
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Bookmark_SaveFailed">
            <summary>
              Looks up a localized string similar to Failed to save bookmarks: .
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataForm_CommitButtonContent">
            <summary>
              Looks up a localized string similar to Apply.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataForm_EditInReadOnlyModeNotAllowed">
            <summary>
              Looks up a localized string similar to Cannot apply changes when &apos;FeatureDataForm&apos; is in read-only mode..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_CollectionIsEmpty">
            <summary>
              Looks up a localized string similar to &apos;FeatureDataGrid&apos; row collection is empty..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_IndexOutOfRange">
            <summary>
              Looks up a localized string similar to Index &apos;{0}&apos; must be greater than or equal to 0 and less than {1}..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_InvalidObjectTypeForKey">
            <summary>
              Looks up a localized string similar to Invalid object type for &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_MixedAttributeTypesNotAllowed">
            <summary>
              Looks up a localized string similar to All rows must be of type &apos;{0}&apos; for the &apos;{1}&apos; attribute..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_ObjectIsNullOrInvalidType">
            <summary>
              Looks up a localized string similar to Object is null or its type cannot be determined..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_RowUpdateFailed">
            <summary>
              Looks up a localized string similar to Unable to update the row at index {0}..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FeatureDataGrid_SelectedAndTotalRows">
            <summary>
              Looks up a localized string similar to Records ({0} out of {1} Selected).
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.FieldDomain_FieldTypeNotSupported">
            <summary>
              Looks up a localized string similar to Field type &apos;{0}&apos; is not supported..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.MagnifyingGlass_BigMapNotFoundInTemplate">
            <summary>
              Looks up a localized string similar to Template child &apos;bigMap&apos; cannot be found..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.ProgressBar_ProgressPercentage">
            <summary>
              Looks up a localized string similar to {0}%.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.TemplatePanel_StackCountLessThanOne">
            <summary>
              Looks up a localized string similar to &apos;StackCount&apos; cannot be less than one..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Validation_InvalidRangeDomain">
            <summary>
              Looks up a localized string similar to Value must be between {0} and {1}..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Validation_InvalidType">
            <summary>
              Looks up a localized string similar to Type &apos;{0}&apos; must be a valid &apos;{1}&apos; value..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Validation_InvalidValue">
            <summary>
              Looks up a localized string similar to Value &apos;{0}&apos; is not a valid &apos;{1}&apos; type for field &apos;{2}&apos;..
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Properties.Resources.Validation_ValueCannotBeNull">
            <summary>
              Looks up a localized string similar to &apos;{0}&apos; cannot be empty..
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataFormLabelPosition">
            <summary>
            The enumeration type indicating position of field labels in the FeatureDataForm.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataFormLabelPosition.Left">
            <summary>
            Positions field labels on left side of each field control.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataFormLabelPosition.Top">
            <summary>
            Positions field labels on top of each field control.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataField`1">
            <summary>
            The FeatureDataField class. Used by FeatureDataForm to create values corresponding to each graphic attribute. Beside 
            data validation since FeatureDataField implements INotifyPropertyChanged interface it will notify FeatureDataForm about 
            any change in an attribute.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataField`1.#ctor(ESRI.ArcGIS.Client.Toolkit.FeatureDataForm,ESRI.ArcGIS.Client.Field,System.Type,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataField`1"/> class.
            </summary>
            <param name="featureDataForm">The feature data form.</param>
            <param name="field">The field.</param>
            <param name="propertyType">Type of the property.</param>
            <param name="propertyValue">The property value.</param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataField`1.Key">
            <summary>
            Gets the key (the attribute name).
            </summary>
            <value>The key.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataField`1.Value">
            <summary>
            Gets or sets the attribute value.
            </summary>
            <value>The value.</value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.FeatureDataField`1.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Magnifier">
            <summary>
            Map Magnifying glass
            </summary>
            <summary>
            Magnifier
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Magnifier.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Magnifier"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Magnifier.Initialize(ESRI.ArcGIS.Client.Map)">
            <summary>
            Initializes using the specified map.
            </summary>
            <param name="map">The map.</param>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Magnifier.LayersProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Magnifier.Layers"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Magnifier.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Magnifier.Map"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Magnifier.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Magnifier.Enabled">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:ESRI.ArcGIS.Client.Toolkit.Magnifier"/> is enabled.
            </summary>
            <value><c>true</c> if enabled; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Magnifier.Layers">
            <summary>
            Gets or sets the layers.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Magnifier.ZoomFactor">
            <summary>
            Gets or sets the zoom factor.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Magnifier.Map">
            <summary>
            Gets or sets the map that this magnifier should magnify on.
            </summary>
            <value>The map.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataFieldValueConverter">
            <summary>
            Value converter for each field created by the FeatureDataForm that corresponds to a graphic attribute.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataFieldValueConverter.#ctor(ESRI.ArcGIS.Client.FeatureService.CodedValueDomain)">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataFieldValueConverter"/> class.
            </summary>
            <param name="codedValueDomain">The coded value domain.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataFieldValueConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the source data before passing it to the target for display in the UI.
            </summary>
            <param name="value">The source data being passed to the target.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the target dependency property.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the target dependency property.
            </returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataFieldValueConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
            <summary>
            Modifies the target data before passing it to the source object.  This method is called only in <see cref="F:System.Windows.Data.BindingMode.TwoWay"/> bindings.
            </summary>
            <param name="value">The target data being passed to the source.</param>
            <param name="targetType">The <see cref="T:System.Type"/> of data expected by the source object.</param>
            <param name="parameter">An optional parameter to be used in the converter logic.</param>
            <param name="culture">The culture of the conversion.</param>
            <returns>
            The value to be passed to the source object.
            </returns>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Legend">
            <summary>
            Legend Control
            </summary>
            <example>
            <para>
            Allowing the user to toggle map service layers on and off and change
            opacity by overriding the MapLayerTemplate:
            <code lang="Xaml">
            &lt;esri:Legend Map=&quot;{Binding ElementName=MyMap}&quot; LayerItemsMode=&quot;Flat&quot;
            	 ShowOnlyVisibleLayers=&quot;False&quot;&gt;
            	&lt;esri:Legend.MapLayerTemplate&gt;
            		&lt;DataTemplate&gt;
            		&lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
            			&lt;CheckBox Content=&quot;{Binding Label}&quot;
            							IsChecked=&quot;{Binding IsEnabled, Mode=TwoWay}&quot;
            							IsEnabled=&quot;{Binding IsInScaleRange}&quot; &gt;
            			&lt;/CheckBox&gt;
            			&lt;Slider Maximum=&quot;1&quot; Value=&quot;{Binding Layer.Opacity, Mode=TwoWay}&quot; Width=&quot;50&quot; /&gt;
            		&lt;/StackPanel&gt;
            	&lt;/DataTemplate&gt;
            	&lt;/esri:Legend.MapLayerTemplate&gt;
            &lt;/esri:Legend&gt;
            </code>
            </para>
            </example>
            <example>
            <para>
            Allowing the user to toggle sub layers in a dynamic map service by 
            overriding the LayerTemplate:
            <code lang="Xaml">
            &lt;esri:Legend Map=&quot;{Binding ElementName=MyMap}&quot; LayerItemsMode=&quot;Flat&quot;
            	 ShowOnlyVisibleLayers=&quot;False&quot;&gt;
            	&lt;esri:Legend.LayerTemplate&gt;
            		&lt;DataTemplate&gt;
            			&lt;CheckBox Content=&quot;{Binding Label}&quot;
            			IsChecked=&quot;{Binding IsEnabled, Mode=TwoWay}&quot;
            				IsEnabled=&quot;{Binding IsInScaleRange}&quot; &gt;
            			&lt;/CheckBox&gt;
            		&lt;/DataTemplate&gt;
            	&lt;/esri:Legend.LayerTemplate&gt;
            &lt;/esri:Legend&gt;
            </code>
            </para>
            </example>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Legend.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Legend"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Legend.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Legend"/> control.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.MapProperty">
            /// <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.LayerIDsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerIDs"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsModeProperty">
            <summary>
            Identifies the <see cref="F:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsModeProperty"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.ShowOnlyVisibleLayersProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.ShowOnlyVisibleLayers"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItems"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsSourceProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsSource"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.LegendItemTemplateProperty">
            /// <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LegendItemTemplate"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.LayerTemplateProperty">
            /// <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerTemplate"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.MapLayerTemplateProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LegendItemTemplate"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Legend.Refresh">
            <summary>
            Refreshes the legend control.
            </summary>
            <remarks>Note : In most cases, the control is always up to date without calling the refresh method.</remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Legend.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code 
            or internal processes (such as a rebuilding layout pass) call
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.Map">
            <summary>
            Gets or sets the map that the legend control is buddied to.
            </summary>
            <value>The map.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerIDs">
            <summary>
            Gets or sets the layer IDs of the layers participating in the legend.
            </summary>
            <remarks>
            Specified in XAML and in Blend as a comma-delimited string: If a layer 
            name contains a comma, please use &#44; instead of the comma.
            If null/empty, legend from all layers is generated. Order of 
            the layer ids is respected in generating the legend.
            </remarks>
            <value>The layer IDs.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsMode">
            <summary>
            Gets or sets the layer items mode that defines the structure of the legend : Flat or Tree.
            Depending on this value, <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsSource"/> and <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel.LayerItemsSource"/> will return
            either only the layer items leaves or a complete layer item hierarchy taking care of the map layers and of the group layers.
            </summary>
            <value>The layer items mode.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.ShowOnlyVisibleLayers">
            <summary>
            Gets or sets a value indicating whether only the visible layers are participating to the legend.
            </summary>
            <value>
            	<c>true</c> if only the visible layers are participating to the legend; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItems">
            <summary>
            Gets the LayerItems for all layers that the legend control is working with.
            </summary>
            <value>The LayerItems.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsSource">
            <summary>
            The enumeration of the legend items displayed at the first level of the legend control.
            This enumeration is depending on the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerItemsMode"/> property and on the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.ShowOnlyVisibleLayers"/> property.
            </summary>
            <value>The layer items source.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.LegendItemTemplate">
            <summary>
            Gets or sets the legend item template.
            </summary>
            <remarks>The legend item template is used at the lower level in the legend hierachy.
            Most generally, it contains an image and a label. </remarks>
            <value>The legend item template.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerTemplate">
            <summary>
            Gets or sets the layer template. This template is used by default for all layer items (i.e all items except the legend items at the lowest level). 
            </summary>
            <value>The layer template.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.MapLayerTemplate">
            <summary>
            Gets or sets the map layer template (i.e. the highest items in the legend hierarchy).
            </summary>
            <remarks>This value is optional. By default, the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Legend.LayerTemplate"/> is used.
            </remarks>
            <value>The map layer template.</value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Legend.Refreshed">
            <summary>
            Occurs when the legend is refreshed. 
            Give the opportunity for an application to add or remove legend items.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Legend.Mode">
            <summary>
            LayerItems mode enumeration defines the structure of the legend : Flat or Tree.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.Mode.Flat">
            <summary>
            Flat structure : LayerItemsSource returns the LayerItems leaves (i.e not the group layers nor the map layers with sub layers) and the LegendItems. 
            <remarks>This is the default value.</remarks>
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Legend.Mode.Tree">
            <summary>
            Tree structure : LayerItemsSource returns a hierarchy of legend items taking care of the map layers and of the group layers. 
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Legend.RefreshedEventArgs">
            <summary>
            Legend Event Arguments used when the legend is refreshed.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.RefreshedEventArgs.LayerItem">
            <summary>
            Gets the layer item being refreshed.
            </summary>
            <value>The layer item.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Legend.RefreshedEventArgs.Error">
            <summary>
            Gets a value that indicates which error occurred during the legend refresh.
            </summary>
            <value>An System.Exception instance, if an error occurred during the refresh; otherwise null.</value>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay">
            <summary>
            A control that displays a symbol presenter scaled to fit.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.OnApplyTemplate">
            <summary>
            Overrides OnApplyTemplate
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.MeasureOverride(System.Windows.Size)">
            <summary>
            Overrides MeasureOverride
            </summary>
            <param name="availableSize"></param>
            <returns></returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.ArrangeOverride(System.Windows.Size)">
            <summary>
            Overrides ArrangeOverride
            </summary>
            <param name="finalSize"></param>
            <returns></returns>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.SymbolProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.Symbol"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.AttributesProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.Attributes"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.SymbolContent">
            <summary>
            The symbol presenter
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.Symbol">
            <summary>
            The symbol to display
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.Attributes">
            <summary>
            The attributes.  Required for data binding
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.DataBinder">
            <summary>
            The data binder.  Used for data binding.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.DataBinder.Attributes">
            <summary>
            Attributes
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.DataBinder.Symbol">
            <summary>
            Symbol
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolDisplay.DataBinder.PropertyChanged">
            <summary>
            Property changed event.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter">
            <summary>
            A control that displays a symbol.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.MeasureOverride(System.Windows.Size)">
            <summary>
            Overrides MeasureOverride
            </summary>
            <param name="availableSize"></param>
            <returns></returns>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.SymbolProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.Symbol"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.OnMouseEnter(System.Windows.Input.MouseEventArgs)">
            <summary>
            Overrides OnMouseEnter
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs)">
            <summary>
            Overrides OnMouseLeftButtonDown
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs)">
            <summary>
            Overrides OnMouseLeftButtonUp
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.OnMouseLeave(System.Windows.Input.MouseEventArgs)">
            <summary>
            Overrides OnMouseLeave
            </summary>
            <param name="e"></param>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.Primitives.SymbolPresenter.Symbol">
            <summary>
            The symbol to display.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass">
            <summary>
            Magnifying control for the <see cref="T:ESRI.ArcGIS.Client.Map"/> using a <see cref="T:ESRI.ArcGIS.Client.TiledMapServiceLayer"/>.
            </summary>
            <remarks>
            If you require multiple layer or dynamic layers in your magnifier, 
            use the <see cref="T:ESRI.ArcGIS.Client.Toolkit.Magnifier"/> control instead.
            </remarks>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass"/> class.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.#cctor">
            <summary>
            Static initialization for the <see cref="T:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass"/> control.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.ArrangeOverride(System.Windows.Size)">
            <summary>
            Provides the behavior for the "Arrange" pass of Silverlight layout.
            Classes can override this method to define their own arrange pass behavior.
            </summary>
            <param name="finalSize">The final area within the parent that
            this object should use to arrange itself and its children.</param>
            <returns>The actual size used.</returns>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application
            code or internal processes (such as a rebuilding layout pass) call
            <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.LayerProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.Layer"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.MapProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.Map"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.ZoomFactorProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.ZoomFactor"/> dependency property.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.Layer">
            <summary>
            Gets or sets the layer used in the overview map.
            </summary>
            <value>The layer.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.Map">
            <summary>
            Sets or gets the Map control associated with the OverviewMap.
            </summary>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.MagnifyingGlass.ZoomFactor">
            <summary>
            Gets or sets the zoom factor.
            </summary>
        </member>
        <member name="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm">
            <summary>
            The FeatureDataForm Control. Provides the ability to view/modify graphic attributes in Graphics/Feature layers.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm"/> class.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.FeatureLayerProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.FeatureLayer"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.GraphicSourceProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.GraphicSource"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.IsReadOnlyProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.IsReadOnly"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.CommitButtonContentProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.CommitButtonContent"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.LabelPositionProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.LabelPosition"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.CommitButtonStyleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.CommitButtonStyle"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.LabelStyleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.LabelStyle"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.TextBoxStyleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.TextBoxStyle"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.ComboBoxStyleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.ComboBoxStyle"/> dependency property.
            </summary>
        </member>
        <member name="F:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.DatePickerStyleProperty">
            <summary>
            Identifies the <see cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.DatePickerStyle"/> dependency property.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.OnApplyTemplate">
            <summary>
            When overridden in a derived class, is invoked whenever application code or internal processes 
            (such as a rebuilding layout pass) call <see cref="M:System.Windows.Controls.Control.ApplyTemplate"/>.
            </summary>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.FieldControl_GotFocus(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the GotFocus event of the FieldControl control.
            </summary>
            <remarks>
            In the case that a TextBox control holds the TypeId field we may need to re-generate the form layout when the 
            TypeId field control has lost its focus. This has been identified via the private typeIdFieldTextBox variable 
            in which has been populated in its LostFocus event handler (FieldControl_LostFocus).
            </remarks>
            <param name="sender">The source of the event.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.ApplyChanges">
            <summary>
            Updates the GraphicSource by applying all changes that have been made and not applied to the associated graphic's attributes.
            </summary>
            <returns>true if the edits could be applied</returns>
            <seealso cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.HasEdits"/>
            <seealso cref="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.IsValid"/>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.IsValid">
            <summary>
            Gets a value indicating whether last update operation in this instance was valid.
            </summary>
            <value><c>true</c> if the last update operation was valid; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.HasEdits">
            <summary>
            Gets a value indicating whether the instance of the FeatureDataForm has unapplied edit(s).
            </summary>
            <value><c>true</c> if the instance of the FeatureDataForm has unapplied edit(s); otherwise, <c>false</c>.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.FeatureLayer">
            <summary>
            Gets or sets the feature layer.
            </summary>
            <value>The feature layer.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.GraphicSource">
            <summary>
            Gets or sets the GraphicSource. This is the data source used by the FeatureDataForm.
            </summary>
            <value>The graphic source.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.IsReadOnly">
            <summary>
            Gets or sets a value indicating whether this instance is read only.
            </summary>
            <value>
            	<c>true</c> if this instance is read only; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.CommitButtonContent">
            <summary>
            Gets or sets the content of the commit button.
            </summary>
            <value>The content of the commit button.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.LabelPosition">
            <summary>
            Gets or sets the label positioning in FeatureDataForm.
            </summary>
            <value>The label position: Left or Top</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.CommitButtonStyle">
            <summary>
            Gets or sets the style used for the commit button.
            </summary>
            <value>The commit button style.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.LabelStyle">
            <summary>
            Gets or sets the style used for all TextBlock controls showing field names/aliases.
            </summary>
            <value>The label style.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.TextBoxStyle">
            <summary>
            Gets or sets the style used for all TextBox controls showing field values.
            </summary>
            <value>The text box style.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.ComboBoxStyle">
            <summary>
            Gets or sets the style used for all ComboBox controls showing field values.
            </summary>
            <value>The combo box style.</value>
        </member>
        <member name="P:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.DatePickerStyle">
            <summary>
            Gets or sets the style used for all DatePicker (calendar) controls showing field values.
            </summary>
            <value>The date picker style.</value>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.EditEnded">
            <summary>
            Occurs when the last update was successfully finished in FeatureDataForm.
            </summary>
        </member>
        <member name="E:ESRI.ArcGIS.Client.Toolkit.FeatureDataForm.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
    </members>
</doc>
